- 二分查找
給定一個 n 個元素有序的(升序)整型陣列 nums 和一個目標值 target ,寫一個函式搜索 nums 中的 target,如果目標值存在回傳下標,否則回傳 -1,
示例 :
輸入: nums = [-1,0,3,5,9,12], target = 2
輸出: -1
解釋: 2 不存在 nums 中因此回傳 -1
提示:
你可以假設 nums 中的所有元素是不重復的,
n 將在 [1, 10000]之間,
nums 的每個元素都將在 [-9999, 9999]之間,
分析:一道普通的二分查找題,要注意的是題目要求nums 的每個元素都將在 [-9999, 9999]之間,所以mid可以不用low+(high-low)/2這方法防止溢位;用js寫的朋友要記得js的"/"不會自動向下取整,要Math.floor才行
js取整小技巧:
- parseInt()
- Math.floor()
- ~~num() 兩次取反的實際意義是在JS中可以將浮點數變成整數,
代碼如下:
/**
* @param {number[]} nums
* @param {number} target
* @return {number}
*/
var search = function(nums, target) {
let low=0,high=nums.length-1;
while(low<=high){
let mid=Math.floor((low+high)/2);
if(target==nums[mid])
return mid;
else if(target<nums[mid])
high=mid-1;
else
low=mid+1;
}
return -1;
};
覺得本篇文章對你有幫助的可以點一下右下角的大拇指噢
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/291501.html
標籤:其他
上一篇:前端進階學習之路學習
下一篇:淺學JavaScript03
