二分查找leetcode题目
(162 medium) 寻找峰值
var findPeakElement = function(nums) {if(nums.length===0)return 0;let L=0let R=nums.length-1while(L<R){let mid=parseInt((L+R)/2)if(nums[mid]>nums[mid+1]){R=mid}else{L=mid+1}}return L};(240 medium) 搜索二维矩阵2
var searchMatrix = function(matrix, target) {let m=matrix.lengthif(m==0)return falselet n=matrix[0].lengthlet x=n-1let y=0while(x>=0&&y<m){let cur=matrix[y][x]if(cur===target)return trueif(cur>target){x--}else{y++}}return false};
3.(275 medium) h指数2
var hIndex = function(citations) {let l=0,r=citations.length;while(l<r){let mid=Math.ceil(l+r+1>>1);if(citations[citations.length-mid]>=mid) l=mid;else r=mid-1;}return l;};
4.(441 easy) 排列硬币
var arrangeCoins = function(n) {let left=0let right=nwhile(left<=right){let mid=Math.floor((left+right)/2)let cost=mid*(mid+1)/2if(cost===n){return mid}else if(cost<n){left=mid+1}else if(cost>n){right=mid-1}}return right};
5.(704 easy) 二分查找
var search = function(nums, target) {let left = 0;let right = nums.length-1;let mid;while(left <= right){mid = parseInt((left+right)/2);let midVal = nums[mid];if(midVal === target) return mid;if(midVal > target) right=mid-1;if(midVal < target) left=mid+1;}return -1;};
6.(744 easy )寻找比目标字母大的最小字母
var search = function(nums, target) {let left = 0;let right = nums.length-1;let mid;while(left <= right){mid = parseInt((left+right)/2);let midVal = nums[mid];if(midVal === target) return mid;if(midVal > target) right=mid-1;if(midVal < target) left=mid+1;}return -1;};
