0
点赞
收藏
分享

微信扫一扫

二分查找数组中第一个比目标元素大或者小的元素

皮皮球场 2022-04-03 阅读 89

利用二分查找数组中第一个比目标元素大的元素,与原本二分查找寻找相同的元素不同在于对边界的处理不同

	 public int findNextGreaterNum(int[] arr,int target){
          int left = 0;
          int right = arr.length-1;
          while(left<right) {
        	  int mid = (right-left)/2+left;//防止整数溢出
        	  if(arr[mid]<=target) {//如果当前元素比目标元素小或者相同 则去他右边找
        		  left = mid+1;
        	  }else {
        		  right = mid;//如果当前元素比目标元素大 则去他左边找 此时注意 应该包括其当前边界
        	  }
          }
          return arr[left];
	 }
	 

例题Leetcode 744. 寻找比目标字母大的最小字母

举报

相关推荐

0 条评论