[LeetCode] 81. Search in Rotated Sorted Array II
题目:
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7
might become 4 5 6 7 0 1 2
).
Write a function to determine if a given target is in the array.
The array may contain duplicates.
题意及分析:一个升序数组在某个点被翻转过,判断target在数组中的位置,若不存在返回-1,链表中可能含重复的。如果可能有重复,那我们上一题判断左右部分是否有序的方法就失效了,因为可能有这种13111情况,虽然起点小于等于中间,但不代表右边就不是有序的,因为中点也小于等于终点,所有右边也是有序的。所以,如果遇到这种中点和两边相同的情况,我们可以直接向前移动,删除重复点。
代码
class Solution {public boolean search(int[] nums, int target) {int start = 0, end = nums.length - 1, mid = -1;while(start <= end){mid = (start + end) /2;if(target == nums[mid])return true;if(nums[mid] < nums[end] || nums[mid] < nums[start]){ //如果明确右边有序或者左边无序,可以直接在右边查找if(target > nums[mid] && target <= nums[end]){start = mid + 1;}elseend = mid -1;}else if(nums[start] < nums[mid] || nums[mid] > nums[end]){ //如果明确左边有序或者右边无序,可以直接在左边查找if(target < nums[mid] && target >=nums[start]){end = mid -1;}elsestart = mid +1;}else{ //出现num[start]==nums[mid]==nums[end],直接向前移动一个,这样可以达到删除重复数。end--;}}return false; } }
转载于:https://www.cnblogs.com/271934Liao/p/8056392.html
[LeetCode] 81. Search in Rotated Sorted Array II相关推荐
- leetcode 81 Search in Rotated Sorted Array II ----- java
Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...
- 81. Search in Rotated Sorted Array II
题目: Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would ...
- 【leetcode】Search in Rotated Sorted Array II(middle)☆
Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...
- LeetCode 33. Search in Rotated Sorted Array
问题链接 LeetCode 33. Search in Rotated Sorted Array 题目解析 给定一个 "升序" 的 无重复 数组,从中寻找目标值."升序& ...
- LeetCode Search in Rotated Sorted Array II
Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would t ...
- LeetCode Search in Rotated Sorted Array II -- 有重复的旋转序列搜索
Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...
- LeetCode Online Judge 题目C# 练习 - Search in Rotated Sorted Array II
Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...
- leetcode - Search in Rotated Sorted Array II
Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...
- [算法题] Search in Rotated Sorted Array ii
题目内容 题目来源:LeetCode Suppose an array sorted in ascending order is rotated at some pivot unknown to yo ...
最新文章
- 淘宝获取单笔订单信息服务端调用API及流程
- 颜色缩减(带Trackbar)【从毛星云Opencv3编程入门P75 P111例程改编】
- 绝了,这18 个开箱即用的 Shell 脚本值得收藏
- NOIP2016普及组复赛第一题的AC程序加题解pascal
- 动态改变ListView布局
- PyTorch可视化理解卷积神经网络
- JDK1.5新特性介绍
- (转)asp.net夜话之十一:web.config详解
- Angular2快速入门-1.创建第一个app
- css布局-瀑布流的实现
- 毕业论文 Word 排版技巧
- dom4j解析xml格式字符串获取标签属性和内容
- 树莓派综合项目2:智能小车(一)四轮驱动
- MySQL的多表查询及习题练习
- 中标麒麟v7服务器宕机问题分析
- iphone应用开发
- 图解Java服务端Socket建立原理
- 数据产品经理---如何设计指标字典
- java boxed_Java IntStream boxed()用法及代码示例
- 通过$route.mete.show实现组件动态展示
热门文章
- 三维点云学习(5)2-Deep learning for Point Cloud-PointNet
- 为什么c语言程序设计书不介绍文件删除,C语言程序设计上机指导书2010.doc
- 原生vue.js实现待办事项清单,支持增删改查
- 文档处理工具库——Apache POI的使用
- 全站仪和手机连接软件_全站仪各方面应用的原理、操作及计算,看这篇就对了...
- mysql——event定时任务
- Android常用Adapter用例
- html的table效果,html的table用法(让网页的视觉效果显示出来)
- 计算机考试如何添加打印机,如何添加网络打印机?
- arduino eeg脑电模块_应用深度学习EEGNet来处理脑电信号