二分法通用解法

Welcome to MarkdownPad 2

MarkdownPad is a full-featured Markdown editor for Windows.

leetcode 二分法通用解法

class Soultion
{
public:
    int binarySearch(vector<int>&nums, int target)
    {
        if (nums.size() == 0)
        {
            return -1;
        }
        int start = 0;
        int end = nums.size() - 1;
        int mid;
        while (start + 1 < end)/*避免相交或者相邻*/
        {
            mid = start + (end - start) / 2;
            //start+end/2这种方法MAXINT可能会移除
            if (nums[mid] == target) {
                end = mid;
            }
            else if (nums[mid] < target)
            {
                start = mid;
            }
            else if (nums[mid] > target)
            {
                end = mid;
            }
        }
        //判断取得是第一个还是第二个
        if (nums[start] == mid)
        {
            return start;
        }
        if (nums[end] == mid)
        {
            return end;
        }
        return -1;
    }
};


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,489评论 2 45
  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 9,813评论 0 23
  • ## Welcome to MarkdownPad 2 ## **MarkdownPad**is a full-f...
    骆宏阅读 228评论 0 2
  • 不知道是不是受海南台风登陆影响,这两天这座城市一直下着雨,像是把积压许久的情绪都宣泄了出来,化作狂风暴雨。 下雨天...
    岚风的叶子阅读 224评论 0 0
  • 渐渐模糊的 是眼睛还是玻璃 又或是卑微的心 我努力去看见 却不愿意注视 熟悉的歌曲正演奏着的 是悲伤的音符还是悲伤...
    露义莲华君阅读 273评论 0 3