如何尋找數組中的最小值與最大值

java程序員面試筆試寶典P260勘誤!!!java

bug:當數組中只有最後一個元素時,怎麼處理?程序員

當程序中除第一個元素後,剩下的的元素時偶數個的話,就不用考慮剩下最後一個了。面試

可是若是是奇數的話,兩兩相鄰元素比較後,必然會剩下最後一個元素。數組

/**
 * Created by ahu_lichang on 2017/8/10.
 */
public class MaxMin {
    static int Max;
    static int Min;

    public static void GetMaxAndMin(int[] arr){
        Max = arr[0];//第一個元素
        Min = arr[0];
        int len = arr.length;
        for(int i=1;i<len-1;i=i+2){//從第二個元素開始相鄰的元素兩兩比較
/*            if(i+1>len){//不曉得在幹嗎?(書中代碼)
                if(arr[i]>Max)
                    Max = arr[i];
                if(arr[i]<Min)
                    Min = arr[i];
            }*/
            if(arr[i]>arr[i+1]){
                if(arr[i]>Max)
                    Max = arr[i];
                if(arr[i+1]<Min)
                    Min = arr[i+1];
            }
            if(arr[i]<arr[i+1]){
                if(arr[i]<Min)
                    Min = arr[i];
                if(arr[i+1]>Max)
                    Max = arr[i+1];
            }
        }
        if(arr[len-1]>Max){  //判斷最後一個元素!!!(本身修改代碼) Max = arr[len-1]; }else{ Min = arr[len-1]; }
    }

    public static void main(String[] args){
        int[] array = {7,3,19,40,4,7,1,0};
        GetMaxAndMin(array);
        System.out.println("Max=" + Max);
        System.out.println("Min=" + Min);
    }
}
相關文章
相關標籤/搜索