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

2025年- H63-Lc171--33.搜索旋转排序数组(2次二分查找,需二刷)--Java版

1.题目描述

在这里插入图片描述

2.思路

输入:旋转后的数组 nums,和一个整数 target

输出:target 在 nums 中的下标,如果不存在,返回 -1

限制:时间复杂度为 O(log n),所以不能用遍历,必须使用 二分查找!
在这里插入图片描述
二分查找:搜索区间必须是“单调有序”的(即 单调递增 或 单调递减)。
(1)首先翻转后的数组,构成两个有序数组。
(2)对第一个有序数组进行二分查找
(3)对第二个有序数组进行二分查找
在这里插入图片描述

3.代码实现

  public class H33 {public int search(int[] nums, int target) {int left=0;int right=nums.length-1;//对于空数组直接返回-1if(nums==null||nums.length==0){return -1;}while(left<=right){int mid=left+(right-left)/2;//1.直接找到目标返回if(nums[mid]==target){return mid;}// 2. 判断左半边是否有序if(nums[left]<=nums[mid]){//如果左半边是有序的(nums[left] <= nums[mid]),target 应该在 [nums[left], nums[mid]] 范围内才继续往左找。if(target<nums[mid]&&target>=nums[left]){// 目标在左半边,缩小右边界right=mid-1;}else {left=mid+1; 目标不在左半边//                else if (target < nums[left] || target > nums[mid]) {//                    left = mid + 1;//                }//                // 理论上不会到这一步//                else {//                    return -1;//                }}}else if(nums[right]>nums[mid]){if(target>nums[mid]&&target<=nums[right]){left=mid+1;}else{right=mid-1;// // 目标不在右半边//                else if (target < nums[mid] || target > nums[right]) {//                    right = mid - 1;//                }//                // 理论上不会到这一步//                else {//                    return -1;}}}//如果没找到,返回-1return -1;}public static void main(String[] args){int[] nums ={4,5,6,7,0,1,2};int target=0;H33 test=new H33();int res=test.search(nums,target);System.out.print(res);}}

相关文章:

  • 112 Gbps 及以上串行链路的有效链路均衡
  • 在Spring Boot中集成Redis进行缓存
  • Linux.docker.k8s基础概念
  • 设计模式——建造者设计模式(创建型)
  • Windows上用FFmpeg采集摄像头推流 → MediaMTX服务器转发流 → WSL2上拉流播放
  • Visual Studio笔记:MSVC工具集、MSBuild
  • C++ 17 正则表达式
  • 机器学习与深度学习06-决策树02
  • day17 常见聚类算法
  • 深入理解MCP模型协议:构建全能AI服务端
  • 学习STC51单片机22(芯片为STC89C52RCRC)
  • LLMTIME: 不用微调!如何用大模型玩转时间序列预测?
  • Pytorch---ImageFolder
  • 什么是闭包
  • 姜老师MBTI课程:ISTP和ISFP
  • Thinkphp6实现websocket
  • 秒杀系统—5.第二版升级优化的技术文档三
  • 设备健康管理的战略升维:用预测性维护重构企业竞争力
  • Linux 基础IO(上)
  • VR/AR 显示瓶颈将破!铁电液晶技术迎来关键突破
  • 重庆建设网站/百度seo推广价格
  • 查看网站建设时间/优化神马网站关键词排名价格
  • 重庆有哪些做网站公司/江门关键词排名工具
  • 广西网站建设哪里有/买外链有用吗
  • 网站做关键词排名每天要做什么/今日最近的新闻大事10条
  • 网站 系统 区别/广州各区正在进一步优化以下措施