码迷,mamicode.com
首页 > 其他好文 > 详细

First Occurrence Of Binary Search

时间:2016-08-30 08:16:36      阅读:180      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!