《leetCode》:Find Minimum in Rotated Sorted Array II

题目

Follow up for "Find Minimum in Rotated Sorted Array":
What if duplicates are allowed?

Would this affect the run-time complexity? How and why?
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.

The array may contain duplicates.

思路

"Find Minimum in Rotated Sorted Array"这篇博文中的第二种方法也适合用来解决这道题。

代码再贴一次,如下:

/* 根据题意可知,旋转数组是根据一个排序数组旋转k为而来。 根据这个特征,只需要找到第一个后面的元素小于前面的相邻元素即为最小数; 但是有一点需要注意:如果k=0;则第一个数就是最小数 */

int findMin(int* nums, int numsSize) {
    if(nums==NULL||numsSize<1){
        return 0;
    }
    int minRes=nums[0];
    for(int i=0;i<numsSize-1;i++){      
        if(nums[i+1]<nums[i]){
            return nums[i+1];
        } 
    }
    return minRes;
}

你可能感兴趣的:(LeetCode,array,sorted,Minimum,rotated)