java數據結構和算法(06)旋轉數組中的最小數字

  • 題目:把一個數組最開始的若干個元素搬到數組的末尾,咱們稱之爲數組的旋轉。 輸入一個非減排序的數組的一個旋轉,輸出旋轉數組的最小元素。 例如數組{3,4,5,1,2}爲{1,2,3,4,5}的一個旋轉,該數組的最小值爲1。 NOTE:給出的全部元素都大於0,若數組大小爲0,請返回0。完成以下代碼:
import java.util.ArrayList;
public class Solution {
    public int minNumberInRotateArray(int [] array) {
    
    }
}
複製代碼
  • 思路:分三種狀況
    • 1.數組爲空java

    • 2.部分旋轉,例如由(1,2,3,4,5)旋轉爲(3,4,5,1,2),此時只須要遍歷數組,找到當前數比前面的數小的數便可。數組

    • 3.徹底旋轉,例如由(1,2,3,4,5)旋轉爲(1,2,3,4,5),此時第一個數最小。spa

  • 代碼:
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;
    }
}
複製代碼
相關文章
相關標籤/搜索