
力扣:搜索旋转排序数组 II
发布日期:2021-05-08 20:01:10
浏览次数:19
分类:精选文章
本文共 1221 字,大约阅读时间需要 4 分钟。
题目描述
假设按照升序排序的数组在预先未知的某个点上进行了旋转。
( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。 编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。题目分析
请参考
本题的区别在于,数组中有重复元素的出现,需要进行边界压缩 ,核心如下:if(nums[left] == nums[mid]){ left ++; continue;}
其他的过程和 搜索旋转排序数组 完全一致
class Solution { public boolean search(int[] nums, int target) { int left = 0 , right = nums.length - 1; while(left <= right){ int mid = left + (right - left) / 2; if(nums[mid] == target) return true; // 压缩左边界 if(nums[left] == nums[mid]){ left ++; continue; } // mid 在前半段升序数组中 if(nums[mid] > nums[0]){ // target 在 left 和 mid 之间 if(nums[left] <= target && nums[mid] > target){ right = mid - 1; } else { left = mid + 1; } } else { // mid 在后半段升序数组中 // target 在 mid 和 right 之间 if(nums[mid] < target && target <= nums[right]){ left = mid + 1; } else { right = mid - 1; } } } return false; }}
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月21日 00时31分45秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
kubernetes--pod的生命周期管理
2023-01-29
Java复用技术与软件可维护性的关联分析及扩展策略
2023-01-29
kubernetes1.5.2--部署dashboard服务
2023-01-29
Java复用技术在不同行业项目中的适应性分析与扩展
2023-01-29
kubernetes1.5.2--部署DNS服务
2023-01-29
kubernetes1.5.2--部署node-problem-detector服务
2023-01-29
kubernetes1.5.2--部署监控服务
2023-01-29
kubernetes1.5.2集群部署过程--安全模式
2023-01-29
kubernetes1.5.2集群部署过程--非安全模式
2023-01-29
Kubernetes下容器化应用部署实战
2023-01-29
Kubernetes中间件容器化工具Operator详解
2023-01-29
Kubernetes健康检查与探测机制详解
2023-01-29
Kubernetes入门实验:namespace
2023-01-29
Kubernetes入门:构建和管理容器化应用的强大工具
2023-01-29
Kubernetes包管理工具Helm详解
2023-01-29
Kubernetes单master节点高可用集群安装
2023-01-29
Kubernetes原理详解
2023-01-29
Kubernetes原生的CICD工具Tekton详解
2023-01-29
Kubernetes多master节点高可用集群安装
2023-01-29
Kubernetes存储之Persistent Volumes简介
2023-01-29