当前位置: 首页 > article >正文

leetcode 153

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

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

解法1如下:

class Solution {
    public int findMin(int[] nums) {
        Arrays.sort(nums);
        return nums[0];    
    }
}

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

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

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


http://www.kler.cn/a/233473.html

相关文章:

  • 【Java SE】接口类型
  • SpringBoot(八)使用AES库对字符串进行加密解密
  • 28.医院管理系统(基于springboot和vue)
  • 如何在Python中实现一个简单的搜索引擎:从零开始的指南
  • 【网络工程】计算机硬件概述
  • SQL练习(2)
  • Vulnhub-Empire靶机-详细打靶流程
  • 大数据术语系列(1)——COW和MOR,我如何使用chatgpt通俗易懂地理解了hudi这两种表类型
  • 为什么说重载发生在编译期而重写发生在运行期
  • 【Redis笔记】分布式锁及4种常见实现方法
  • Linux cp命令(cp指令)解析
  • 零基础学Python之整合MySQL
  • Vite 下一代的前端工具链,前端开发与构建工具
  • C++重新入门-C++运算符
  • 2024春晚刘谦魔术与约瑟夫环问题
  • C++ 贪心 区间问题 最大不相交区间数
  • C#,雷卡曼数(Recamán Number)的算法与源代码
  • 【Nicn的刷题日常】之有序序列合并
  • unity editor 编辑器 GUID localID LocalFileId 查找问题
  • Android java基础_类的封装
  • React环境配置
  • 程序的内存模型
  • SpringMVC第一天
  • 动态内存管理(下)
  • SpringMVC第二天
  • 2024年2月5日-2月11日(全面进行+收集虚幻引擎免费资源)