mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-10 04:06:51 +08:00
Merge pull request #776 from Jerry-306/patch-12
修改 0704 二分查找 JavaScript版本解法
This commit is contained in:
@ -283,31 +283,46 @@ func search(nums []int, target int) int {
|
|||||||
|
|
||||||
// (版本一)左闭右闭区间
|
// (版本一)左闭右闭区间
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {number[]} nums
|
||||||
|
* @param {number} target
|
||||||
|
* @return {number}
|
||||||
|
*/
|
||||||
var search = function(nums, target) {
|
var search = function(nums, target) {
|
||||||
let l = 0, r = nums.length - 1;
|
let left = 0, right = nums.length;
|
||||||
// 区间 [l, r]
|
// 使用左闭右开区间 [left, right)
|
||||||
while(l <= r) {
|
while (left < right) {
|
||||||
let mid = (l + r) >> 1;
|
let mid = left + Math.floor((right - left)/2);
|
||||||
if(nums[mid] === target) return mid;
|
if (nums[mid] > target) {
|
||||||
let isSmall = nums[mid] < target;
|
right = mid; // 去左区间寻找
|
||||||
l = isSmall ? mid + 1 : l;
|
} else if (nums[mid] < target) {
|
||||||
r = isSmall ? r : mid - 1;
|
left = mid + 1; // 去右区间寻找
|
||||||
|
} else {
|
||||||
|
return mid;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
};
|
};
|
||||||
|
|
||||||
// (版本二)左闭右开区间
|
// (版本二)左闭右开区间
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {number[]} nums
|
||||||
|
* @param {number} target
|
||||||
|
* @return {number}
|
||||||
|
*/
|
||||||
var search = function(nums, target) {
|
var search = function(nums, target) {
|
||||||
let l = 0, r = nums.length;
|
let left = 0, right = nums.length;
|
||||||
// 区间 [l, r)
|
// 使用左闭右开区间 [left, right)
|
||||||
while(l < r) {
|
while (left < right) {
|
||||||
let mid = (l + r) >> 1;
|
let mid = left + Math.floor((right - left)/2);
|
||||||
if(nums[mid] === target) return mid;
|
if (nums[mid] > target) {
|
||||||
let isSmall = nums[mid] < target;
|
right = mid; // 去左区间寻找
|
||||||
l = isSmall ? mid + 1 : l;
|
} else if (nums[mid] < target) {
|
||||||
// 所以 mid 不会被取到
|
left = mid + 1; // 去右区间寻找
|
||||||
r = isSmall ? r : mid;
|
} else {
|
||||||
|
return mid;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user