首页 > 其他 > 详细

First Occurrence Of Binary Search

时间:2016-08-30 08:16:20      阅读:277      评论:0      收藏:0      [点我收藏+]

和普通的binary search不同就是在处理找到等于target的数

首先要记录这个结果,然后我们现在其实是需要向左找,右边的数都不重要,因为我们要找最左出现的,我们就假设现在的情况是nums[mid] > target,所以high = mid - 1.如果找不到了,那么之前的结果就是最左侧的,否则就继续找。

 1     public int firstOccurence(int[] nums, int target) {
 2         int left = 0;
 3         int right = nums.length - 1;
 4         int res = -1;
 5         while(left <= right) {
 6             int mid = left + (right - left) / 2;
 7             if(nums[mid] == target) {
 8                 res = mid;
 9                 right = mid - 1;
10             } else if(nums[mid] < target) {
11                 left =  mid + 1;
12             } else {
13                 right = mid - 1;
14             }
15         }
16         return res;
17     }

 

First Occurrence Of Binary Search

原文:http://www.cnblogs.com/warmland/p/5820428.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!