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

力扣面试150题--搜索旋转排序数组

Day 84

题目描述

在这里插入图片描述

思路

标准二分查找要求数组完全有序,但旋转排序数组可以通过以下步骤处理:

  1. 确定中点 mid:计算 mid = beg + (end - beg) / 2,避免整数溢出。
  2. 判断左右哪部分有序:
    如果 nums[beg] <= nums[mid],说明左半部分 [beg, mid] 有序。
    否则,右半部分 [mid, end] 有序
  3. 缩小搜索范围:
    如果目标值 target 在有序部分的范围内,则在该部分继续搜索。
    否则,在另一部分搜索
class Solution {public int search(int[] nums, int target) {int beg=0;int end=nums.length-1;while(beg<=end){int mid=beg+(end-beg)/2;if(target==nums[mid]){return mid;}if(nums[beg]<=nums[mid]){//左半有序if(target<=nums[mid]&&target>=nums[beg]){end=mid-1;}else{beg=mid+1;}}else{//右半有序if(target>nums[mid]&&target<=nums[end]){beg=mid+1;}else{end=mid-1;}}}return -1;}
}
http://www.dtcms.com/a/295002.html

相关文章:

  • RT_thread的工作原理及应用
  • java有哪些字符需要转译
  • 2026 拼多多秋招内推码(提前批)
  • 前端学习之JavaScript事件监听解析
  • Bonk发币教学全流程
  • 欧盟网络安全标准草案EN 18031详解
  • JDialong弹窗
  • 计算机网络学习----Https协议
  • 亚马逊云科技 上海AI研究院 突然解散 | AI早报
  • 13. event.target 和 event.currentTarget 区别
  • 【C语言进阶】动态内存管理(2)
  • 力扣(LeetCode) ——轮转数组(C语言)
  • Unity UI的未来之路:从UGUI到UI Toolkit的架构演进与特性剖析(2)
  • 【Web APIs】JavaScript 节点操作 ⑦ ( 创建节点案例 | 网页评论功能 )
  • 旅游管理虚拟仿真实训室:重构实践教学新生态
  • 掌握Autofac:IOC容器实战指南
  • GaussDB view视图的用法
  • 分布式光伏发电项目简易故障录波装置介绍
  • [硬件电路-78]:模拟器件 - 从宏观到微观:高频信号下电路与光路的特性演变与挑战
  • Hexo - 免费搭建个人博客05 - 更新个人博客
  • GUI简介 - OpenExo
  • 回顾 Palantir:八年之旅的反思
  • ​​SBOM 软件供应链安全(转)
  • haproxy的七层代理
  • Day01_C++编程
  • Ollama(3)模型迁移和API使用
  • Modbus协议详解与c#应用
  • 重写 与 重载
  • pig cloud框架中引入websocket
  • nginx websocket 代理 断网后 再联网 不能连接