LeetCode81 Search in Rotated Sorted Array II
来源:互联网 发布:淘宝上印度德玛药房 编辑:程序博客网 时间:2024/05/21 09:10
LeetCode81 Search in Rotated Sorted Array II
问题描述
Follow up for “Search in Rotated Sorted Array”:
What if duplicates are allowed?Would this affect the run-time complexity? How and why?
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.
简单分析
这道题是之前的题目LeetCode33的延伸,都是在一个旋转后的数组中用二分法进行查找,不过这道题多了一个条件,那就是数组有可能包含重复元素。
包含重复元素就意味着在判旋转的那个节点位置的时候存在问题。例如 [1,2,4,4,4,4,4] 在旋转后变成 [4,4,4,1,2,4] 。 无法简单的通过判断mid和left的大小来确定旋转节点的位置。因为left 和right都等于mid。所以对于这种情况,需要移动边界,直到明确的确认 left、 mid 和 right 的关系。
代码如下
public boolean search(int[] nums, int target) { if(nums==null || nums.length<1) return false; //初始化左右游标 int left =0; int right = nums.length -1; while(left<=right){ int mid =(left+right)/2; if(nums[mid]==target){ //找到目标值返回true return true; } if(nums[mid]>nums[left]){ if(nums[mid]>target&&nums[left]<=target){ right = mid-1; }else{ left = mid+1; } }else if(nums[mid]<nums[left]){ if(nums[mid]<target&&nums[right]>=target){ left = mid+1; }else{ right= mid -1; } }else{ left++; } } return false;}
LeetCode学习笔记持续更新
GitHub地址 https://github.com/yanqinghe/leetcode
CSDN博客地址 http://blog.csdn.net/yanqinghe123/article/category/7176678
- leetcode81---Search in Rotated Sorted Array II
- leetcode81~Search in Rotated Sorted Array II
- leetcode81. Search in Rotated Sorted Array II
- LeetCode81 Search in Rotated Sorted Array II
- LeetCode81——Search in Rotated Sorted Array II
- leetcode81. Search in Rotated Sorted Array
- LeetCode: Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- LeetCode Search in Rotated Sorted Array II
- LeetCode : Search in Rotated Sorted Array II
- [LeetCode] Search in Rotated Sorted Array II
- [Leetcode] Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- [leetcode] Search in Rotated Sorted Array II
- [LeetCode]Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- 分治法求最大子序列和
- hdu 1317 XYZZY(bellman + Floyed)
- Python蟒蛇代码
- java基础知多少(二)
- Part 3 对象的组合
- LeetCode81 Search in Rotated Sorted Array II
- KNN-算法
- Reverse integer
- linux下五种常见的格式的文件解压缩
- 初次体验vue.js却不出效果
- codevs 1316 文化之旅 SPFA 解题报告
- JavaScript最佳新手入门系列之(同步与异步)
- bzoj 1227: [SDOI2009]虔诚的墓主人
- ubuntu12.04 配置openGL ES2.0 开发环境