33. 搜索旋转排序数组

简介: 33. 搜索旋转排序数组

image.png


二分法的思想来做这道题目


class Solution {
    public int search(int[] nums, int target) {
         if(nums==null||nums.length==0){
            return -1;
        }
        int start=0;
        int end=nums.length-1;
        while(start<=end){   
            int mid=start+(end-start)/2;
            if(nums[mid]==target){
                return mid;
            }
            if(nums[start]<=nums[mid]){ //判断左侧区间递增
                if(target>=nums[start]&&target<nums[mid]){   //判断是否位于区间之中
                    end=mid-1;
                }else{
                    start=mid+1;
                }
            }else{                       //判断右侧区间递增
                if(target>nums[mid]&&target<=nums[end]){   //判断是否位于这个区间 
                    start=mid+1;
                }else{
                    end=mid-1;
                }
            }
        }
        return -1;
    }
}


详情可参考:

https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/solution/yi-wen-jie-jue-4-dao-sou-suo-xuan-zhuan-pai-xu-s-3/

目录
相关文章
|
5月前
|
vr&ar
leetcode每日一题 2021/4/7 81. 搜索旋转排序数组 II
leetcode每日一题 2021/4/7 81. 搜索旋转排序数组 II
29 0
|
3月前
|
算法 测试技术 C#
【二分查找】【z型搜索】LeetCode240:搜索二维矩阵
【二分查找】【z型搜索】LeetCode240:搜索二维矩阵
LeetCode-33 搜索旋转排序数组
LeetCode-33 搜索旋转排序数组
|
10月前
|
算法 安全 Swift
LeetCode - #33 搜索旋转排序数组(Top 100)
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
|
存储 索引
二分查找问题(关键:确定搜索区间)
二分查找问题(关键:确定搜索区间)
leetcode 33 搜索旋转排序数组
leetcode 33 搜索旋转排序数组
91 0
leetcode 33 搜索旋转排序数组
|
Python
LeetCode 33. 搜索旋转排序数组
整数数组 nums 按升序排列,数组中的值 互不相同 。
95 0
每日三题-寻找两个正序数组的中位数 、搜索旋转排序数组、 在排序数组中查找元素的第一个和最后一个位置
每日三题-寻找两个正序数组的中位数 、搜索旋转排序数组、 在排序数组中查找元素的第一个和最后一个位置
40 2
每日三题-寻找两个正序数组的中位数 、搜索旋转排序数组、 在排序数组中查找元素的第一个和最后一个位置
|
存储
LeetCode 79单词搜索&80删除排序数组中的重复项Ⅱ&81.搜索旋转排序数组Ⅱ
单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。
57 0
LeetCode 79单词搜索&80删除排序数组中的重复项Ⅱ&81.搜索旋转排序数组Ⅱ