java二分查找
Maggie's secret
我在拼命
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java - LeetCode 287. 寻找重复数(全面解析,思路清晰)(二分查找)
LeetCode 287. 寻找重复数 b站视频,一分钟画图解析。 链接: https://b23.tv/JOhtcK. 思路: 整个数组只有一个重复数,其余都是一个数。我们就从这些数的中位数开始找。 遍历整个数组找出小于或大于中位数的个数,如果个数大于中位数,说明有重复的数字。继续二分查找。 解析: 设置两个变量,记录整个数组最小值和最大值。再设置一个计数变量。 开始循环,条件:最小值小于最大值。二分查找,算出中位数,找中位数。 ①遍历整个数组找小于中位的数,并计数; ②再将个数与中位数比较,如果个数比原创 2020-11-30 17:05:12 · 1407 阅读 · 11 评论 -
java - LeetCode 167. 两数之和 II - 输入有序数组(Easy,思路解析)(二分查找)
LeetCode 167. 两数之和 II - 输入有序数组 条件: 1.返回的下标值(index1 和 index2)不是从零开始的,是从1开始的。 解析: 1.设置一个新数组,用来保存最终结果。 2.设置两个指针,指向最左和最右。 3.开始循环,条件:左小于等于右。 将左右相加,值是否等于目标值,如果等于就将两个值赋给新设的数组。 值比目标值小,我们让左指针左移,是左右相加值变大; 值比目标值大,让右指针向左移,使左右相加值变小。 class Solution { public int[] tw原创 2020-11-30 15:38:48 · 277 阅读 · 7 评论 -
java - LeetCode 33.搜索旋转排序数组(5分钟讲解,简单易懂)(二分查找)
二分查找 正常解法 class Solution { public int search(int[] nums, int target) { for(int i = 0; i < nums.length; i++){ if(nums[i] == target) return i; } return -1; } }原创 2020-11-30 01:40:31 · 383 阅读 · 3 评论 -
java - LeetCode 50.Pow(x, n) 计算x的n次幂函数(三种解法)(详细讲解,小白入手)
LeetCode 50.Pow(x, n) 计算x的n次幂函数。 -100.0 < x < 100.0 n 是 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1] 。 解析: 负数的边界 -2^31 , 直接转正数会越界。 正数边界2^31 − 1,负数转正2^31,越界。 所以将n的类型int转为类型long。 次幂n是负数,首先要转正,将1/x,再-n转正。 如果次幂是单数,我们先保留下x,将次幂n-1,再在最终结果res乘x。 因为二分查找每次减半(i/2),所以原创 2020-11-28 01:10:46 · 984 阅读 · 1 评论
分享