Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >寻找旋转排序数组中的最小值

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

作者头像
一份执着✘
发布于 2018-06-04 08:13:24
发布于 2018-06-04 08:13:24
1.8K00
代码可运行
举报
文章被收录于专栏:赵俊的Java专栏赵俊的Java专栏
运行总次数:0
代码可运行

题意

假设一个旋转排序的数组其起始位置是未知的(比如 0 1 2 4 5 6 7 可能变成是 4 5 6 7 0 1 2)。

你需要找到其中最小的元素。

你可以假设数组中不存在重复的元素。

样例

给出 [4,5,6,7,0,1,2] 返回 0

代码实现: 顺序查找

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Solution {
    /**
     * @param nums: a rotated sorted array
     * @return: the minimum number in the array
     */
    public int findMin(int[] nums) {
        int i = nums[0];
        for(int j = 1; j < nums.length; j++ ) {
            if(nums[j] < i)
                i = nums[j];
        }
        return i;
    }
}

这种方式非常简单,就是依次顺序查找,但是题目推荐的是用二分法进行查找,故下方又用二分法实现了功能。

代码实现: 二分法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Solution {
    /**
     * @param nums: a rotated sorted array
     * @return: the minimum number in the array
     */
    public int findMin(int[] nums) {
        int l = 0;
        int r = nums.length-1;
        if (nums[l] < nums[r])  
            return nums[l];
        
        while (l < r) {
            int mid = (l + r) / 2;
            if (nums[mid] > nums[r])
                l = mid + 1;
            else
                r = mid;
        }
        
        return nums[r];
    }
}

该题的主要思路就是 中位数右侧数 的比较。 根据该类型数据的规律可得结论: 中位数 > 右侧数 则说明 最小数 在右侧,反之在左侧。

原题地址

LintCode:寻找旋转排序数组中的最小值

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-07-042,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
​LeetCode刷题实战153:寻找旋转排序数组中的最小值
https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/
程序员小猿
2021/01/19
2940
​LeetCode刷题实战154:寻找旋转排序数组中的最小值 II
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
程序员小猿
2021/01/19
2620
​LeetCode刷题实战33:搜索旋转排序数组
https://www.cnblogs.com/techflow/p/12441002.html
程序员小猿
2021/01/20
2250
​LeetCode刷题实战33:搜索旋转排序数组
每日算法系列【LeetCode 153】寻找旋转排序数组中的最小值
(例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2])。
godweiyang
2020/03/24
5300
【LeetCode每日一题】153. 寻找旋转排序数组中的最小值
今日题目153题,每日一题微信交流群可以点击右下角:合作转载->联系我,备注:刷题,拉你入群。
公众号guangcity
2021/04/22
3080
LeetCode 33. 搜索旋转排序数组
https://leetcode-cn.com/problems/search-in-rotated-sorted-array/
freesan44
2021/10/18
2930
LeetCode 33. 搜索旋转排序数组
LeetCode第七天
==数组 Medium== 40.(162)Find Peak Element JAVA //斜率思想,二分法 class Solution { public int findPeakElem
10JQKA
2018/05/09
6230
LeetCode第七天
【LeetCode 热题 100】搜索插入位置 / 搜索旋转排序数组 / 寻找旋转排序数组中的最小值
_小羊_
2025/05/17
730
【LeetCode 热题 100】搜索插入位置 / 搜索旋转排序数组 / 寻找旋转排序数组中的最小值
LintCode 寻找旋转排序数组中的最小值题目分析代码
假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。
desperate633
2018/08/22
4910
【leetcode刷题】T10-寻找旋转排序数组中的最小值II
今天分享leetcode第10篇文章,也是leetcode第154题—Find Minimum in Rotated Sorted Array II(寻找旋转排序数组中的最小值II),地址是:https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/
木又AI帮
2019/07/18
4720
153. 寻找旋转排序数组中的最小值
( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。
早起的鸟儿有虫吃
2023/03/28
7520
153. 寻找旋转排序数组中的最小值
【LeetCode每日一题】154. 寻找旋转排序数组中的最小值 II
今日题目154题,每日一题微信交流群可以点击右下角:合作转载->联系我,备注:刷题,拉你入群。
公众号guangcity
2021/04/22
3630
LintCode-159. 寻找旋转排序数组中的最小值
假设一个排好序的数组在其某一未知点发生了旋转(比如0 1 2 4 5 6 7 可能在第3和第4个元素间发生旋转变成4 5 6 7 0 1 2)。
悠扬前奏
2019/05/29
6940
33. 搜索旋转排序数组
( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。
名字是乱打的
2021/12/23
2360
33. 搜索旋转排序数组
LeetCode 153. 寻找旋转排序数组中的最小值(二分查找)
( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。
Michael阿明
2020/07/13
7590
LeetCode 153. 寻找旋转排序数组中的最小值(二分查找)
漫画:知乎面试题(旋转数组最小值Ⅰ - 基础版)
今天是小浩算法“365刷题计划”第71天。继续为大家讲解二分查找,分享一道知乎面试题。话不多说,直接看题。
程序员小浩
2020/03/30
6190
漫画:知乎面试题(旋转数组最小值Ⅰ - 基础版)
【手绘漫画】图解LeetCode之寻找旋转排序数组中的最小值(LeetCode153题)
文章首发于本人CSDN账号:https://blog.csdn.net/tefuirnever
我是管小亮
2020/04/20
3270
LintCode 寻找旋转排序数组中的最小值 II题目分析代码
假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。
desperate633
2018/08/22
4130
T11-搜索旋转排序数组
今天分享leetcode第11篇文章,也是leetcode第33题—Search in Rotated Sorted Array(搜索旋转排序数组),地址是:https://leetcode.com/problems/search-in-rotated-sorted-array/
木又AI帮
2019/07/18
3740
T11-搜索旋转排序数组
33. 搜索旋转排序数组
( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。
lucifer210
2019/09/29
4220
33. 搜索旋转排序数组
推荐阅读
相关推荐
​LeetCode刷题实战153:寻找旋转排序数组中的最小值
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验