/**
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).
Find the minimum element.
You may assume no duplicate exists in the array.
/
public class Solution {
public int findMin(int[] num) {
if (num == null || num.length == 0) {
return 0;
}
if (num.length == 1) {
return num[0];
}
int min = 0, max = num.length - 1;
if (num[min]<num[max])
return num[min];
while (min < max) {
int mid = (min + max) / 2;
if (mid > 0 && (num[mid] < num[mid - 1])) {
return num[mid];
}
if (num[mid] >= num[min] && num[mid] > num[max]) {
min = mid + 1;
} else {
max = mid - 1;
}
}
return num[min];
}
}
LeetCode No.153 Find Minimum in Rotated Sorted Array
最新推荐文章于 2024-07-19 19:25:43 发布