leetcode 153

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

这道题,如果我们熟悉数组 api,可以直接用 Arrays.sort()秒杀,这个方法使用了双轴快速排序算法。

解法1如下:

java 复制代码
class Solution {
    public int findMin(int[] nums) {
        Arrays.sort(nums);
        return nums[0];    
    }
}

第二种解法看到时间复杂度为O(log^n)我们第一时间应该想到二分查找,

java 复制代码
class Solution {
    public int findMin(int[] nums) {
        int left = 0;
        int right = nums.length - 1;  
        while (left < right){
            int mid = left + (right - left) / 2;
            if(nums[mid] > nums[right]) {
                left = mid + 1;
            } else{
                right = mid;
            }
        }
        return nums[left];
    }
}

通过不断收缩查询区间范围来快速找到想要的数据,解决方法如下:

相关推荐
OCR_1337162127513 小时前
护照OCR校验位技术解析:从算法逻辑到工程落地,筑牢证件核验安全线
人工智能·算法
Hello.Reader13 小时前
算法基础(十三)——随机算法为什么有时主动引入随机性
java·数据库·算法
老鱼说AI14 小时前
现代 LangChain 开发指南:从 LCEL 原理到企业级 RAG 与 Agent 实战
java·开发语言·人工智能·深度学习·神经网络·算法·机器学习
小许同学记录成长14 小时前
基于幅度形态与参数聚类的工作模式判别
python·算法·scikit-learn
gumichef14 小时前
二叉树_堆
算法
Liangwei Lin14 小时前
LeetCode 70. 爬楼梯
算法
洛水水15 小时前
【力扣100题】38.路径总和 III
算法·leetcode·深度优先
小侯不躺平.15 小时前
C++ Boost库【2】 --stringalgo字符串算法
linux·c++·算法
流年如夢15 小时前
二叉树详解
c语言·数据结构·算法
xiaoxiaoxiaolll15 小时前
Nature Communications:三维超原子库+原子层保护,突破全彩VR超透镜量产瓶颈
人工智能·算法