LintCode: First Position of Target

C++

Binary Search

陷阱:找到index最小的。

1 class Solution {
 2 public:
 3     /**
 4      * @param nums: The integer array.
 5      * @param target: Target number to find.
 6      * @return: The first position of target. Position starts from 0. 
 7      */
 8     int binarySearch(vector<int> &array, int target) {
 9         // write your code here
10         int ret = array.size();
11         int left = 0, right = array.size()-1;
12         while (left <= right) {
13             int mid = (left + right) >> 1;
14             if (array[mid] == target) {
15                 ret = min(ret, mid);
16                 right = mid - 1;
17             }
18             if (array[mid] > target) {
19                 right = mid - 1;
20             }
21             if (array[mid] < target) {
22                 left = mid + 1;
23             }
24         }
25         if (ret == array.size()) {
26             ret = -1;
27         }
28         return ret;
29     }
30 };

原文链接: https://www.cnblogs.com/CheeseZH/p/5012636.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/225268

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 下午12:45
下一篇 2023年2月13日 下午12:45

相关推荐