当前位置:首页 > 编程笔记 > 正文
已解决

【力扣-每日一题】2560. 打家劫舍 IV

来自网友在路上 163863提问 提问时间:2023-09-26 17:40:22阅读次数: 63

最佳答案 问答题库638位专家为你答疑解惑

在这里插入图片描述

class Solution {
public:bool check(vector<int> &nums,int max_num,int k){//只需要计算可以偷的房间。在满足最大值为max_num下时,能偷的最多的房间,与k值比较//如果大于K,说明max_num还可以缩小//如果小于看,说明max_num需要放大int count=0;for(int i=0;i<nums.size();i++){if(nums[i]<=max_num){count++;    //计数i++;    //下一个不能偷}}return count>=k;}int minCapability(vector<int>& nums, int k) {//在满足偷k个房间的所有情况下,找出最小的窃取能力。每种情况中房屋金额最大值,为该情况的窃取能力//目标:所有情况中最小的窃取能力//二分答案int left=0,right=*max_element(nums.begin(),nums.end());while(left+1<right)   //开{int mid=(left+right)/2;if(check(nums,mid,k))//能整好偷,或偷的个数要多,需要减小最大值right=mid;else left=mid;}return right;}
};
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"【力扣-每日一题】2560. 打家劫舍 IV":http://eshow365.cn/6-14082-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!