152_leetcode_Find Minimum in Rotated Sorted Array

来源:互联网 发布:js 浏览器的弹窗拦截 编辑:程序博客网 时间:2024/04/29 02:15

Suppose a sorted array is rotated at some pivot unknown to you beforehand.

(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

Find the minimum element.

You may assume no duplicate exists in the array.

1:注意特殊情况,数组为空,只有一个元素;2:第一个数字小于最后一个数字的时候,直接返回;3:二分查找,查找的结束条件是start  < end; 此时end对应的数组数值是最小值。

int findMin(vector<int> &num)     {                if(num.size() == 0)        {            return 0;        }                unsigned long size = num.size();                if(size == 1 || num[0] < num[size-1])        {            return num[0];        }                unsigned long start = 0;        unsigned long end = size - 1;                while(start < end -1)        {            unsigned long middle = (start + end) / 2;            if(num[middle] > num[start])            {                start = middle;            }            else            {                end = middle;            }        }                return num[end];    }


0 0
原创粉丝点击