二分查找
liuyang-neu
这个作者很懒,什么都没留下…
展开
-
力扣 中等 275.H指数
h指数不一定都满足citations[mid] == n - mid,例如[0,1,4,5,6]的h指数是3。题目说了用对数时间复杂度来实现,说明一定是用二分法,草纸上推导一下即可得出以下代码。}else{原创 2024-09-25 21:12:06 · 407 阅读 · 0 评论 -
力扣 困难 154.寻找旋转排序数组中的最小值 II
153.寻找旋转排序数组中的最小值在此基础上,进行二分之前,单独处理一下左指针和最后一个数相同的情况就好了。left++;} else {原创 2024-09-23 11:27:55 · 481 阅读 · 0 评论 -
力扣 中等 1901.寻找峰值II
需要明白一个事实:从任意一个点出发,可以经过一个递增路径,找到一个极大值点。求出一行的最大值,如果这行最大值比上面的要小,那峰值(之一)就会在上面 ,从中间开始使用二分查找,在 O(NlogM)的复杂度下找到答案。// 该行的最大值j// 峰顶行号 i// 找到该行最大值的下标i++) {idx = i;return idx;原创 2024-09-23 11:23:49 · 385 阅读 · 0 评论 -
力扣 中等 162.寻找峰值
定理:如果in−1 且numsi]<numsi+1],那么在下标 [i+1,n−1] 中一定存在至少一个峰值。证明思路分析:利用采用红蓝染色题体法,n为数组的长度,开始左指针L指向数组最左边,右指针R指向n-2(为了让最后得到的L不越界,如nums是递增数列)如果nums[M] < nums[M+1] ,说明M在峰顶的左侧,则M和其左侧的元素都为红色;原创 2024-09-20 11:10:32 · 368 阅读 · 0 评论 -
力扣 中等 2300.咒语和药水的成功对数
i < n;原创 2024-09-20 11:02:32 · 222 阅读 · 0 评论 -
力扣2563.统计公平数对的数目
红蓝染色体法i++){// >= lower-nums[i] 的位置// <= upper-nums[j]的位置return res;} else {原创 2024-09-19 10:45:51 · 393 阅读 · 0 评论 -
力扣 2529.正整数和负整数的最大计数
采用红蓝染色体法,具体介绍参考红蓝染色体法通过红蓝染色体法可以找到第一个大于大于target的位置,使所以本题可以找第一个大于0的位置,即负整数的个数;数组长度 - 第一个大于1的位置即正整数的个数。} else {原创 2024-09-19 10:41:55 · 429 阅读 · 0 评论 -
力扣 34. 在排序数组中查找元素的第一个和最后一个位置
红蓝染色体法原创 2024-09-13 11:16:38 · 402 阅读 · 0 评论