Leetcode-Find Minimum in Rotated Sorted Array

LiBlog發表於2014-11-22

Suppose a sorted array 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.

Have you met this question in a real interview?
 
Analysis:
Use the similar method used in "search in roated sorted array".
Solution:
 1 public class Solution {
 2     public int findMin(int[] num) {
 3         if (num.length==0) return -1;
 4 
 5         int start = 0, end = num.length-1;
 6         int mid = -1;
 7 
 8         while (start!=end-1){
 9             mid = (start+end)/2;
10 
11             if (num[mid]<num[start]){
12                 end = mid;
13                 continue;
14             }
15 
16             if (num[mid]>num[end]){
17                 start = mid;
18                 continue;
19             }
20 
21             return num[start];
22         }
23         
24         if (num[start]>num[end]) return num[end];
25         else return num[start];
26 
27     }
28 }

 

 
 

相關文章