Day25力扣打卡

打卡记录

寻找旋转排序数组中的最小值(二分)

链接

由于是旋转排序数组,所以整个数组有两部分是递增的,选取右侧最后元素,即可将整个数组分为大于该元素和小于该元素,碰头地段即为最小值。

cpp 复制代码
class Solution {
public:
    int findMin(vector<int>& nums) {
        int n = nums.size();
        int l = 0, r = n - 1;
        while (l < r) {
            int mid = l + (r - l) / 2;
            if (nums[mid] <= nums[n - 1]) r = mid;
            else l = mid + 1;
        }
        return nums[l];
    }
};
相关推荐
coder江8 小时前
二分查找刷题总结
算法
SundayBear8 小时前
C语言复杂类型声明完全解析:从右左原则到工程实践
c语言·开发语言·数据结构·嵌入式
月夜的风吹雨9 小时前
【封装红黑树】:深度解析map和set的底层实现
c++·set·map·封装
列逍9 小时前
深入理解 C++ 智能指针:原理、使用与避坑指南
开发语言·c++
坚持就完事了9 小时前
蓝桥杯中Python常用的库与模块
python·算法
立志成为大牛的小牛9 小时前
数据结构——四十四、平衡二叉树的删除操作(王道408)
数据结构·学习·程序人生·考研·算法
C语言小火车9 小时前
C/C++ 指针全面解析:从基础到进阶的终极指南
c语言·开发语言·c++·指针
Suckerbin10 小时前
一次LeeCode刷题记录:接雨水
算法
Blossom.11810 小时前
RLHF的“炼狱“突围:从PPO到DPO的工业级对齐实战
大数据·人工智能·分布式·python·算法·机器学习·边缘计算
wefg110 小时前
【C++】特殊类设计
开发语言·c++