二分查找
乔千玫
才疏学浅,学习ing~
展开
-
2022/4/24二分查找基础
1482. 制作 m 束花所需的最少天数二分答案,模板都差不多,就检验答案是否可行这片不一样class Solution {public: int minDays(vector<int>& bloomDay, int m, int k) { if(m*k>bloomDay.size()){ return -1; } int ans=0; int p=21474...原创 2022-04-25 10:00:00 · 151 阅读 · 2 评论 -
二分查找基础
二分答案原创 2022-04-24 11:00:00 · 135 阅读 · 0 评论 -
二分查找基础
287. 寻找重复数用一个数组记录下出现数的次数,如果超过两次就返回这个数class Solution {public: int findDuplicate(vector<int>& nums) { int arr[100005]={}; for(int i=0;i<nums.size();i++){ arr[nums[i]]++; if(arr[nums[i]]...原创 2022-04-23 10:00:00 · 299 阅读 · 0 评论 -
二分查找基础学习
875. 爱吃香蕉的珂珂这题看起来十分眼熟啊,像极了1760. 袋子里最少数目的球还是一样的解法,速度可以从1到1e9,是具有单调性的,当一个速度可以吃完时,比它快的肯定也能吃完,所以可以用二分查找能够吃完的最小速度,最后返回这个最小速度就行。class Solution {public: int minEatingSpeed(vector<int>& piles, int h) { int p=1,q=1000000000;...原创 2022-04-22 15:42:34 · 132 阅读 · 1 评论 -
二分查找基础
300. 最长递增子序列打死我都想不到怎么用二分,连动态规划都是看了答案才懂的,假设dp[i]是取nums[i]是最长的序列,可知dp[i]=max(dp[j])+1&&j<i&&nums[i]>nums[j],这样遍历一遍数组把dp[i]都算出来,然后返回其中最大值即可class Solution {public: int lengthOfLIS(vector<int>& nums) { ...原创 2022-04-21 10:00:00 · 135 阅读 · 3 评论 -
二分查找基础学习
658. 找到 K 个最接近的元素有序数组,找某个值,很明显的二分,先用二分找到数组中最接近x的那个元素,然后再左右扩张至长度k返回这k长度内所有的值就行。class Solution {public: vector<int> findClosestElements(vector<int>& arr, int k, int x) { vector<int>ans; int p=0,q=arr.size()-1原创 2022-04-20 10:00:00 · 352 阅读 · 2 评论 -
力扣二分查找基础学习
二分查找基础学习呀原创 2022-04-19 12:00:00 · 207 阅读 · 1 评论 -
力扣二分查找学习计划 最后一天
诶嘿,勋章到手了原创 2022-04-17 14:00:00 · 111 阅读 · 2 评论 -
力扣二分查找学习计划 第十一天
二分查找第十一天原创 2022-04-17 12:00:00 · 226 阅读 · 1 评论 -
力扣二分查找学习计划 第十天
350. 两个数组的交集 II直接进行排序,然后双指针一个个比,一样就加入答案的数组里,最后返回答案数组即可class Solution {public: vector<int> intersect(vector<int>& nums1, vector<int>& nums2) { sort(nums1.begin(),nums1.end()); sort(nums2.begin(),nums2.en原创 2022-04-16 12:00:00 · 357 阅读 · 3 评论 -
力扣二分查找学习计划 第九天
1337. 矩阵中战斗力最弱的 K 行又是熟悉的二维矩阵,之前的学习中知道,我们可以对每一行使用二分来得到每行的战斗力,问题就在于如何把战斗力从小到大排序的同时还保留它们的下标位置呢?注意到数据范围最大是100,也就是说下标最大是99,那么假设战斗力为p,下标为i我们令n=p*100+i,这样的话我们可以用n/100来得到战斗力p,用n%100来得到下标i,我们将每行的n储存起来再排序,很容易得到这样的排序其实是按战斗力排的,然后就可以返回前k项解决此题。class Solution原创 2022-04-15 12:00:00 · 336 阅读 · 2 评论 -
力扣二分查找学习计划 第八天
二分查找学习计划第八天原创 2022-04-14 12:00:00 · 236 阅读 · 2 评论 -
力扣二分查找刷题计划 第七天
167. 两数之和 II - 输入有序数组一看非递减排序,两数之和是target,啪的一下双指针就出来了,很快啊class Solution {public: vector<int> twoSum(vector<int>& numbers, int target) { int p=0,q=numbers.size()-1; vector<int> ans; int mm=numbers[p]+原创 2022-04-13 12:00:00 · 274 阅读 · 3 评论 -
力扣 二分查找刷题计划 第六天
441. 排列硬币1539.第k个缺失的数原创 2022-04-12 12:00:00 · 235 阅读 · 4 评论 -
力扣二分查找学习计划 第五天
二分查找学习计划第五天原创 2022-04-11 12:00:00 · 263 阅读 · 1 评论 -
力扣二分查找学习计划 第四天
69. x 的平方根我直接不讲码德 return sqrt(x) 简单二分,没啥好讲的,因为整形是向下取整所以返回的值肯定是小于等于sqrt(x)的所以只要找到某个i满足i*i<=x和(i+1)*(i+1)>x,然后返回i即可class Solution {public: int mySqrt(int x) { if(x<2){ return x; } long long int p=.原创 2022-04-10 12:00:00 · 416 阅读 · 4 评论 -
力扣刷题 二分查找学习计划 第三天
367. 有效的完全平方数简单二分查找,需要注意的是溢出问题class Solution {public: bool isPerfectSquare(int num) { int p=1,q=num/2; if(num==1){ return 1; } while(p<=q){ long long int mid=(q+p)/2; if原创 2022-04-09 12:00:00 · 116 阅读 · 1 评论 -
力扣刷题 二分查找 学习计划第二天
二分查找学习计划第二天原创 2022-04-08 19:28:39 · 152 阅读 · 0 评论