旋转数组的最小数字

简介: 旋转数组的最小数字

53320e27f04749ee88a49389417fd3cb.png


int minNumberInRotateArray(int* nums, int numsLen)
{
    // write code here
    int left = 0;
    int right = numsLen - 1;
    int mid = 0;
    while (left < right)
    {
        mid = left + (right - left) / 2;
        if (nums[mid] >= nums[mid - 1] && nums[mid] <= nums[mid + 1])
        {
            if (nums[mid] <= nums[right])
            {
                right = mid;
            }
            else
            {
                left = mid;
            }
        }
        else
        {
            if (nums[mid] >= nums[mid - 1] && nums[mid] >= nums[mid + 1])
                return nums[mid + 1];
            else
                return nums[mid];
        }
    }
    return nums[mid];
}


目录
相关文章
|
6月前
|
Java
【剑指offer】-旋转数组的最小数字-06/67
【剑指offer】-旋转数组的最小数字-06/67
|
6月前
每日一题——旋转数组的最小数字(II)
每日一题——旋转数组的最小数字(II)
剑指offer-10.旋转数组最小的数字
剑指offer-10.旋转数组最小的数字
58 0
|
算法
剑指offer 10. 旋转数组的最小数字
剑指offer 10. 旋转数组的最小数字
55 0
剑指offer_数组---旋转数组的最小数字
剑指offer_数组---旋转数组的最小数字
42 0
|
算法 Java
旋转数组的最小数字(剑指offer 11)
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。
旋转数组的最小数字(剑指offer 11)
11.旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。
88 0
11.旋转数组的最小数字
使用二分法解决旋转数组的最小数字的问题
使用二分法解决旋转数组的最小数字的问题
92 0
使用二分法解决旋转数组的最小数字的问题
|
前端开发 测试技术 程序员
寻找旋转数组中的最小数字
寻找旋转数组中的最小数字
寻找旋转数组中的最小数字
|
算法 测试技术
LeetCode题解—旋转数组的最小数字
今天继续算法题:旋转数组的最小数字
122 0