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];
    }
}

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

相关推荐
点云兔子几秒前
舱口检测:从点云到矩形定位的射线投影算法
opencv·算法·点云·舱口检测
小欣加油2 分钟前
leetcode169 多数元素
数据结构·c++·算法·leetcode·职场和发展
wayz118 分钟前
Momentum:RVGI(相对活力指数)技术指标详解
算法·金融·数据分析·量化交易·特征工程
Promise微笑26 分钟前
洞察无形:红外热像仪行业标准解析与深度选型指南
网络·人工智能·算法
珠海西格电力40 分钟前
零碳园区的竞争力体现在哪些方面?
大数据·人工智能·算法·架构·能源
孬甭_1 小时前
从基础到优化:深入理解插入排序与希尔排序
数据结构·算法·排序算法
好家伙VCC1 小时前
Rust+Bioinfo:80ms极速SNP注释引擎
java·开发语言·算法·rust
啦哈拉哈1 小时前
【Python】知识点零碎学习7
python·学习·算法
宝贝儿好1 小时前
【NLP】第八章:项目实操案例:文本情感分析
人工智能·python·深度学习·算法·自然语言处理
如竟没有火炬1 小时前
恢复二叉搜索树
数据结构·数据库·python·leetcode·动态规划