题解 | #二分查找-I#

二分查找-I

http://www.nowcoder.com/practice/d3df40bd23594118b57554129cadf47b

三种查找:

  1. 普通的二分
    class Solution {
    public:
     int binary_search(vector<int>& nums, int target)
     {
         int len = nums.size();
         int left = 0, right = len - 1;
         while(left <= right)
         {
             int middle = left + (right - left) / 2;
             if(nums[middle] == target) 
                 return middle;
             else if(nums[middle] < target) 
                 left = middle + 1;
             else 
                 right = middle - 1;
         }
         return -1;
     }
     int search(vector<int>& nums, int target) {
         int index = binary_search(nums, target);
         if(index == -1) return -1;
         else
         {
             while(index - 1 >= 0 && nums[index - 1] == nums[index])
                 index--;
             return index;
         }
     }
    };
  2. 寻找最小下标的二分
3. 寻找最大下标的二分

```

全部评论

相关推荐

09-14 17:23
门头沟学院
故事和酒66:所以说副业很重要,程序员干到40岁,再怎么也赚300万了,吃吃利息也够活下去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务