- 題目:把一個數(shù)組最開始的若干個元素搬到數(shù)組的末尾咆爽,我們稱之為數(shù)組的旋轉(zhuǎn)脆丁。 輸入一個非減排序的數(shù)組的一個旋轉(zhuǎn)音榜,輸出旋轉(zhuǎn)數(shù)組的最小元素蔚鸥。 例如數(shù)組{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉(zhuǎn)惜论,該數(shù)組的最小值為1。 NOTE:給出的所有元素都大于0株茶,若數(shù)組大小為0来涨,請返回0。完成如下代碼:
import java.util.ArrayList;
public class Solution {
public int minNumberInRotateArray(int [] array) {
}
}
- 思路:分三種情況
1.數(shù)組為空
2.部分旋轉(zhuǎn)启盛,例如由(1,2,3,4,5)旋轉(zhuǎn)為(3,4,5,1,2)蹦掐,此時只需要遍歷數(shù)組技羔,找到當(dāng)前數(shù)比前面的數(shù)小的數(shù)即可。
3.完全旋轉(zhuǎn)卧抗,例如由(1,2,3,4,5)旋轉(zhuǎn)為(1,2,3,4,5)藤滥,此時第一個數(shù)最小。
- 代碼:
public class Solution {
public int minNumberInRotateArray(int [] array) {
if (null == array) {
return 0;
}
if (array.length == 1) {
return array[0];
}
for (int i = 0; i < array.length-1; i++) {
if (array[i] > array[i + 1]) {
return array[i+1];
}else if(i==array.length-2){
return array[0];
}
}
return 0;
}
}