Find Minimum in Rotated Sorted Array II 旋转数组中找最小值(有重复元素) @LeetCode
2014-11-11 12:19
543 查看
递归
public class Solution {
public int findMin(int[] num) {
return helper(num, 0, num.length-1);
}
//with duplicate
public static int helper(int[] a, int left, int right){
//one element
if(left == right){
return a[left];
}
//two elements
if(left == right-1){
return a[left]<a[right]? a[left]: a[right];
}
//the array is ordered
if(a[left] < a[right]){
return a[left];
}
int mid = (left+right)/2;
if(a[mid] > a[left]){
return helper(a, mid, right);
}else if(a[mid] < a[left]){
return helper(a, left, mid);
}else{ //when a[mid] == a[left], we have to search both side
return Math.min(helper(a, mid, right), helper(a, left, mid));
}
}
}
public class Solution {
public int findMin(int[] num) {
return helper(num, 0, num.length-1);
}
//with duplicate
public static int helper(int[] a, int left, int right){
//one element
if(left == right){
return a[left];
}
//two elements
if(left == right-1){
return a[left]<a[right]? a[left]: a[right];
}
//the array is ordered
if(a[left] < a[right]){
return a[left];
}
int mid = (left+right)/2;
if(a[mid] > a[left]){
return helper(a, mid, right);
}else if(a[mid] < a[left]){
return helper(a, left, mid);
}else{ //when a[mid] == a[left], we have to search both side
return Math.min(helper(a, mid, right), helper(a, left, mid));
}
}
}
相关文章推荐
- 字符串算法——查找有序数组旋转后最小值(有重复元素)(Find Minimum in Rotated Sorted Array II)
- 字符串算法——查找有序数组旋转后的最小值(无重复元素)(Find Minimum in Rotated Sorted Array)
- 154.leetcode Find Minimum in Rotated Sorted Array II(hard)[排序数组 重复元素 二分查找]
- LeetCode-Find Minimum in Rotated Sorted Array II-旋转排序数组找最小-二分查找
- Leetcode|Find Minimum in Rotated Sorted Array II(有重复元素的二分查找)
- Find Minimum in Rotated Sorted Array 旋转数组中找最小值 @LeetCode
- [LeetCode] Find Minimum in Rotated Sorted Array II (包含递增和递减旋转,含有重复数字)
- 153.寻找旋转排序数组中的最小值(Find Minimum in Rotated Sorted Array)
- LeetCode OJ 之 Find Minimum in Rotated Sorted Array (查找旋转有序数组中的最小值)
- 【LeetCode-面试算法经典-Java实现】【154-Find Minimum in Rotated Sorted Array II(找旋转数组中的最小数字II)】
- Find Minimum in Rotated Sorted Array II:带重复的数组中找到升序数列的转折点
- 字符串算法——旋转数组中查找目标值(有重复元素)( Search in Rotated Sorted Array II)
- Find Minimum in Rotated Sorted Array 旋转数组中找最小值 @LeetCode
- 【LintCode】 Find Minimum in Rotated Sorted Array 寻找旋转排序数组中的最小值
- Search in Rotated Sorted Array II 旋转数组(有重复元素)里找数@LeetCode
- 数组-Find Minimum in Rotated Sorted Array(旋转数组求最小值)
- LeetCode-153:Find Minimum in Rotated Sorted Array (可能旋转的排序数组中的最小值) -- medium
- [LeetCode] Find Minimum in Rotated Sorted Array II 寻找旋转有序数组的最小值之二
- LeetCode OJ 之 Find Minimum in Rotated Sorted Array II(查找旋转有序数组中的最小值 - 二)
- Find Minimum in Rotated Sorted Array(旋转数组的最小数字)