java二分查找
Maggie's secret
我在拼命
展开
-
java - LeetCode 287. 寻找重复数(全面解析,思路清晰)(二分查找)
LeetCode 287. 寻找重复数b站视频,一分钟画图解析。链接: https://b23.tv/JOhtcK.思路:整个数组只有一个重复数,其余都是一个数。我们就从这些数的中位数开始找。遍历整个数组找出小于或大于中位数的个数,如果个数大于中位数,说明有重复的数字。继续二分查找。解析:设置两个变量,记录整个数组最小值和最大值。再设置一个计数变量。开始循环,条件:最小值小于最大值。二分查找,算出中位数,找中位数。①遍历整个数组找小于中位的数,并计数;②再将个数与中位数比较,如果个数比原创 2020-11-30 17:05:12 · 1284 阅读 · 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 · 191 阅读 · 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 · 298 阅读 · 3 评论 -
java - LeetCode 50.Pow(x, n) 计算x的n次幂函数(三种解法)(详细讲解,小白入手)
LeetCode 50.Pow(x, n)计算x的n次幂函数。-100.0 < x < 100.0n 是 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 · 843 阅读 · 1 评论