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
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!