Leetcode—33. 搜索旋转排序数组【中等】

2024每日刷题(110)

Leetcode—33. 搜索旋转排序数组

Leetcode—33. 搜索旋转排序数组【中等】_第1张图片

实现代码

class Solution {
public:
    int search(vector<int>& nums, int target) {
        int n = nums.size();
        int l = 0, r = n - 1;
        while(l <= r) {
            int m = l + (r - l) / 2;
            if(nums[m] == target) {
                return m;
            }
            // [l...m]升序
            if(nums[l] <= nums[m]) {
                if(nums[l] <= target && target < nums[m]) {
                    r = m - 1;
                } else {
                    l = m + 1;
                }
                // [m...r]升序
            } else {
                if(nums[m] < target && target <= nums[r]) {
                    l = m + 1;
                } else {
                    r = m - 1;
                }
            }
        }
        return -1;
    }
};

运行结果

Leetcode—33. 搜索旋转排序数组【中等】_第2张图片
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

你可能感兴趣的:(LeetCode刷题,leetcode,算法,职场和发展,c++,二分查找,经验分享)