
/** * @param{number[]}nums * @param{number}target * @return{number} */var search = function(nums, target) { let left=0,right=nums.length-1 while(left<right){ let middle = Math.floor(right/2+left/2); if(nums[middle]<target){ left = middle+1 } else{ right=middle } } if(nums[left]==target){ return left } else{ return -1 }};

/** * Definition for isBadVersion() * * @param {integer} version number * @return {boolean} whether the version is bad * isBadVersion = function(version) { * ... * }; *//** * @param {function} isBadVersion() * @return {function} */var solution = function(isBadVersion) { /** * @param {integer} n Total versions * @return {integer} The first bad version */ return function(n) { let left=1,right=n while(left<right){ let middle=Math.floor(left/2+right/2) if(isBadVersion(middle)){ right=middle } else{ left=middle+1 } } return left };};

/** * @param {number[]} nums * @param {number} target * @return {number} */var searchInsert = function(nums, target) { let left=0,right=nums.length-1 while(left<right){ let middle=Math.floor(left/2+right/2) if(nums[middle]<target){ left=middle+1 } else right=middle } if (nums[right]<target){ return left+1 } else{ return left }};