leetcode--Search in Rotated Sorted Array II
2017-08-08 11:19
337 查看
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.
题意:和leetcode--Search in Rotated Sorted Array一样,但是数组中可能出现重复元素
分类:数组,二分法
解法1:如果遇到无法判断在哪边的元素,说明是重复元素,这时只能遍历查找了
[java] view
plain copy
public class Solution {
public boolean search(int[] nums, int target) {
int low = 0;
int high = nums.length-1;
while(low<=high){
int mid = (low+high)/2;
if(nums[mid]==target) return true;
if(nums[mid]>nums[low]){//如果mid属于左边
if(nums[mid]>target && nums[low]<=target){//如果target属于左边
high = mid-1;
}else{
low = mid+1;
}
}else if(nums[mid]<nums[low]){//如果mid属于右边
if(target>nums[mid] && target<=nums[high]){
low = mid+1;
}else{
high = mid-1;
}
}else{
for(int i=low;i<=mid;i++){
if(nums[i]==target) return true;
}
low = mid+1;
}
}
return false;
}
}
原文链接http://blog.csdn.net/crazy__chen/article/details/46427185
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.
题意:和leetcode--Search in Rotated Sorted Array一样,但是数组中可能出现重复元素
分类:数组,二分法
解法1:如果遇到无法判断在哪边的元素,说明是重复元素,这时只能遍历查找了
[java] view
plain copy
public class Solution {
public boolean search(int[] nums, int target) {
int low = 0;
int high = nums.length-1;
while(low<=high){
int mid = (low+high)/2;
if(nums[mid]==target) return true;
if(nums[mid]>nums[low]){//如果mid属于左边
if(nums[mid]>target && nums[low]<=target){//如果target属于左边
high = mid-1;
}else{
low = mid+1;
}
}else if(nums[mid]<nums[low]){//如果mid属于右边
if(target>nums[mid] && target<=nums[high]){
low = mid+1;
}else{
high = mid-1;
}
}else{
for(int i=low;i<=mid;i++){
if(nums[i]==target) return true;
}
low = mid+1;
}
}
return false;
}
}
原文链接http://blog.csdn.net/crazy__chen/article/details/46427185
相关文章推荐
- [LeetCode]Search in Rotated Sorted Array II
- leetcode -- Search in Rotated Sorted Array II
- Leetcode 81. Search in Rotated Sorted Array II
- LeetCode 81 Search in Rotated Sorted Array II (二分)
- [Leetcode] 81. Search in Rotated Sorted Array II
- LeetCode --- 81. 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
- [LeetCode] 098: Search in Rotated Sorted Array II
- LeetCode Search in Rotated Sorted Array II
- [leetcode]Search in Rotated Sorted Array II @ Python
- LeetCode81 Search in Rotated Sorted Array II
- leetcode之Search in Rotated Sorted Array II
- LeetCode Search in Rotated Sorted Array II
- leetcode - 81.Search in Rotated Sorted Array II
- Leetcode 33, 81 Search in Rotated Sorted Array I, II
- LeetCode 081 Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II——LeetCode