开发者社区> 流楚丶格念> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

LeetCode 154. 寻找旋转排序数组中的最小值 II

简介: LeetCode 154. 寻找旋转排序数组中的最小值 II
+关注继续查看

154. 寻找旋转排序数组中的最小值 II


假设按照升序排序的数组在预先未知的某个点上进行了旋转。


( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。


请找出其中最小的元素。


注意数组中可能存在重复的元素。


示例 1:


输入: [1,3,5]
输出: 1
• 1
• 2


示例 2:


输入: [2,2,2,0,1]
输出: 0


题解


官方最详细:


https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-ii/solution/xun-zhao-xuan-zhuan-pai-xu-shu-zu-zhong-de-zui–16/


代码


class Solution {
public:
    int findMin(vector<int>& nums) {

        int start=0,end=nums.size()-1;
        while(start<=end)
        {
            int mid=(end+start)/2;
            if(nums[mid]<nums[end])
            {
                end=mid;
            }
            // 右边已经排好序
            else if(nums[mid] > nums[end])
            {
                start=mid+1;
            }
            else   // 左边已经排好序
            {
                end--;
            }
          
        }
        return nums[start];

    }
};



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
LeetCode刷题153-中等-寻找旋转数组的最小值
LeetCode刷题153-中等-寻找旋转数组的最小值
26 0
【leetcode刷题】31.旋转数组的最小数字——Java版
⭐欢迎订阅《leetcode》专栏,每日一题,每天进步⭐ 什么鬼题目呀,管你旋不旋转,直接输出最小值不就完了。。。 ——leetcode此题热评
45 0
[学习报告]《LeetCode零基础指南》(第六讲) C排序API
[学习报告]《LeetCode零基础指南》(第六讲) C排序API
16 0
面试:Java 实现查找旋转数组的最小数字
在算法面试中,面试官总是喜欢围绕链表、排序、二叉树、二分查找来做文章,而大多数人都可以跟着专业的书籍来做到倒背如流。而面试官并不希望招收的是一位记忆功底很好,但不会活学活用的程序员。
1086 0
LeetCode题解—旋转数组的最小数字
今天继续算法题:旋转数组的最小数字
20 0
LeetCode 训练场:905. 按奇偶排序数组
LeetCode 训练场:905. 按奇偶排序数组
12 0
LeetCode 81. 搜索旋转排序数组 II
LeetCode 81. 搜索旋转排序数组 II
12 0
Maven:程序包org.apache.log4j不存在问题处理
1 2 log4j 3 log4j 4 1.2.15 5 6 7 javax.
3932 0
+关注
流楚丶格念
csdn平台优质创作者,51cto TOP博主,360图书馆科技博主,燕山大学目前大三在读,日拱一卒,功不唐捐,加油!!!
1010
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载