当前位置:网站首页>【LeetCode】1760.袋子里最少数目的球
【LeetCode】1760.袋子里最少数目的球
2022-08-07 01:05:00 【酥酥~】
题目
给你一个整数数组 nums ,其中 nums[i] 表示第 i 个袋子里球的数目。同时给你一个整数 maxOperations 。
你可以进行如下操作至多 maxOperations 次:
选择任意一个袋子,并将袋子里的球分到 2 个新的袋子中,每个袋子里都有 正整数 个球。
比方说,一个袋子里有 5 个球,你可以把它们分到两个新袋子里,分别有 1 个和 4 个球,或者分别有 2 个和 3 个球。
你的开销是单个袋子里球数目的 最大值 ,你想要 最小化 开销。
请你返回进行上述操作后的最小开销。
示例 1:
输入:nums = [9], maxOperations = 2
输出:3
解释:
- 将装有 9 个球的袋子分成装有 6 个和 3 个球的袋子。[9] -> [6,3] 。
- 将装有 6 个球的袋子分成装有 3 个和 3 个球的袋子。[6,3] -> [3,3,3] 。
装有最多球的袋子里装有 3 个球,所以开销为 3 并返回 3 。
示例 2:
输入:nums = [2,4,8,2], maxOperations = 4
输出:2
解释:
- 将装有 8 个球的袋子分成装有 4 个和 4 个球的袋子。[2,4,8,2] -> [2,4,4,4,2] 。
- 将装有 4 个球的袋子分成装有 2 个和 2 个球的袋子。[2,4,4,4,2] -> [2,2,2,4,4,2] 。
- 将装有 4 个球的袋子分成装有 2 个和 2 个球的袋子。[2,2,2,4,4,2] -> [2,2,2,2,2,4,2] 。
- 将装有 4 个球的袋子分成装有 2 个和 2 个球的袋子。[2,2,2,2,2,4,2] -> [2,2,2,2,2,2,2,2] 。
装有最多球的袋子里装有 2 个球,所以开销为 2 并返回 2 。
示例 3:
输入:nums = [7,17], maxOperations = 2
输出:7
提示:
1 <= nums.length <= 105
1 <= maxOperations, nums[i] <= 109
题解
使用二分查找
经过maxOperations次分球,保证袋子里的最大球数最小
即将每个袋子里的球分成y个一袋,不够y个的不进行操作
所以就是求得一个合适的y值,能满足分球次数不超过maxOperations并且份的的开销最小
class Solution {
public:
int minimumSize(vector<int>& nums, int maxOperations) {
int left = 0;
int right = *max_element(nums.begin(),nums.end())+1;
int res = 0;
while(left+1 != right)
{
int mid = left+((right-left)>>1);
//cout<<left<<"=="<<mid<<"=="<<right<<"==>";
int opr = 0;
for(int it:nums)
{
opr += it/mid + (it%mid!=0) -1;
}
if(opr <= maxOperations)
{
right = mid;
res = mid;
}
else
left = mid;
//cout<<left<<" "<<right<<endl;
}
return res;
}
};
边栏推荐
猜你喜欢
随机推荐
语音识别与转换小试牛刀(1)
Ju Yanan's "Public Relations" focused on sorting
Contrastive Learning Model Cheat Sheet (1)
Deploy an LVS-DR cluster
linux-mysql backup
机器学习数学基础
常用cmd命令
LeetCode:每日一题【第一周】
CloudCompare 读取轨迹文件(添加IO插件)
进程线程的基本概念复习
HTB-Sunday
Go-Excelize API源码阅读(九)——SetSheetBackground(sheet, picture string)
普林斯顿微积分读本04第三章--极限导论
普通莫队小结
CloudCompare read track file (add IO plugin)
2022起重机械指挥考试模拟100题及在线模拟考试
【8.5】代码源 - 【GCD】【序列中位数】【最大连边数量】
分布式事务理论以及解决方案
刚入职985的他,发了Science!
软件测试面试题:手工测试与自动测试有哪些区别?









