java程序员面试笔试宝典P260勘误!!!
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); } }