Search in Rotated Sorted Array II
来源:互联网 发布:淘宝类目数据 编辑:程序博客网 时间:2024/06/14 06:45
Follow up for “Search in Rotated Sorted Array”:
What if duplicates are allowed?
Would this affect the run-time complexity? How and why?
Write a function to determine if a given target is in the array.
思路:这个题目比上一个题目多加了数字可以重复的条件,问题来了,由于出现了重复的数字,比如1 1 1 1 3 1 1 1,这个时候中间的数字和左右两边的数字都相等,所以这时采用折半查找无法正确的分区间,当遇到这种情况的时候,就left++,right–,直到中间的数字不与左右两端的数字相等,然后就可以正确的分区间,较上一个题目只要修改一点点。。或者不使用left++和right–,循环判断left到mid之间的数字,如果出现了某个数字大于nums[mid],说明mid所处于的是在后一半有序数字,否则left到mid之间的数字全部小于nums[mid],这个时候说明mid所在的地方处于前一半数字。不过这种方法的时间复杂度快接近线性的了
public class Solution { public boolean search(int[] nums, int target) { int left = 0; int length = nums.length; int right = length - 1; while (left <= right && left <= (length - 1) && right <= (length - 1)) { int mid = (left + right) / 2; if (nums[mid] == target || nums[left] == target || nums[right] == target) return true; if(nums[mid] == nums[left] && nums[mid] == nums[right]) { ++left; right--; } else { if (nums[mid] <= nums[right]) { if (nums[mid] < target && nums[right] > target) left = mid + 1; else right = mid - 1; } else { if (nums[mid] > target && nums[left] < target) right = mid - 1; else left = mid + 1; } } } return false; }}
0 0
- 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
- 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
- ssh-copy-id使用方法
- HTML基础2--a、img、常见标签、选择符、伪类
- [LeetCode]151.Reverse Words in a String
- Java相关环境配置(1)----JDK&JRE
- Trie树详解及其应用
- Search in Rotated Sorted Array II
- 提高第15课时,实践,简单银行系统的初步框架(加强版)v2.0
- PL/SQL基础
- ORM的使用
- IOS 数据库
- HTML基础3--内嵌、块元素
- WaitForSingleObject
- 各种不爽,杭电1166终于挣扎着AC了
- iOS开发人员必看的精品资料(100个)——下载目录