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

leetcode33.搜索旋转排序数组

思路源于 

【小白都能听懂的算法课】【力扣】【Leetcode33】搜索旋转排序数组 | 二分查找 | 数组

主要是数组旋转后分为左右两个升序区间 ,如果mid落在左区间并且目标大小也在left-mid中,那么right右缩

 

class Solution {
    public int search(int[] nums, int target) {
        int left=0,right=nums.length-1;
        while(left<=right){
            int mid=(right-left)/2+left;

            if(target==nums[mid])
                return mid;
            else {
                //mid落入左区间
                if(nums[left]<=nums[mid]){
                    //target也在左区间
                    if(nums[left]<=target&&target<nums[mid])
                        right=mid-1;
                    //target在右区间
                    else
                        left=mid+1;
                }else {
                    //mid落入右区间
                    //target也在右区间
                    if(nums[mid]<target&&target<=nums[right])
                        left=mid+1;
                    //target在左区间
                    else
                        right=mid-1;
                }
            }
        }
        return -1;
    }
}

 

http://www.dtcms.com/a/97009.html

相关文章:

  • 云原生四重涅槃·破镜篇:混沌工程证道心,九阳真火锻金身
  • 【商城实战(93)】商城高并发实战:分布式锁与事务处理深度剖析
  • Linux驱动编程 - UVC驱动分析
  • Java Optional:优雅处理空值的艺术,告别NullPointerException
  • 高并发金融系统,“可观测-可追溯-可回滚“的闭环审计体系
  • 小林coding-17道Java基础面试题
  • MySQL 基础查询语句参考手册
  • 【Zabbix技术系列文章】第①篇——基础入门
  • CSS学习笔记5——渐变属性+盒子模型阶段案例
  • ubuntu 升级补丁,备份备份备份
  • JAVA学习*异常
  • CSS-BFC(块级格式化上下文)
  • 主流大模型采用的架构、注意力机制、位置编码等汇总表
  • 【SECS】初识SECS协议
  • MiniRAG检索流程详细图解
  • #VCS# 关于 +incdir+xxx 编译选项的注意点
  • #前端js发异步请求的几种方式
  • 【AI语音】edge-tts实现文本转语音,免费且音质不错
  • 指针 --1
  • RS232转Profinet网关技术,检漏仪新篇章!
  • 深度融合华为鸿蒙生态,嘀嗒出行重构顺风车出行新体验
  • 「HTML5+Canvas实战」星际空战游戏开发 - 纯前端实现 源码即开即用【附演示视频】
  • 18-背景渐变与阴影(CSS3)
  • C++ | constexpr
  • Linux服务器怎样根据端口找到对应启动的服务
  • TCSVT审稿学习笔记
  • 3.28-2 jmeter读取mysql
  • spring @SpringBootApplication 注解详解
  • 使用AURIX ADS部署tensorflow lite到Tricore TC2XX/TC3XX
  • EMC知识学习三