- /*
 
 - 你的代码不难看出,你定义一个int b = 0;比较数组中第一位是否比第二位小,如果成立,b = 第二位.
 
 - */
 
 - class  Ti { 
 
 -     public static void main(String[] args)  {
 
 -            int [] a = {-1,-4,-5,-2,-7,-8};
 
 -            int z = pu( a );
 
 -            System.out.println(z);
 
 -    }
 
  
-     public static int pu(int [] a)  {
 
 -          int b = 0;
 
  
-           for(int x = 0;x < a.length -1;x++ ){
 
 -                         /*
 
 -                         分析你的代码:
 
 -                                 你是这样比较的: 0和1        1和2        2和3        3和4        4和5 (数字代表角标)
 
 -                                 假设:第一次进来a[x] < a[x+1] 成立,此时b=a[x+1];
 
 -                                                         第二次进来a[x] < a[x+1] 不成立,此时b不动;(有可能不成立吧,此时的b指向的值可能是最大的)
 
 -                                                         第三次进来a[x] < a[x+1]成立,此时b=a[x+1];(此时b取到的数跟第一次有没有联系?换言之就是第一次b取到的值和第三次取到的值都没有比较)
 
 -                         解决方法:
 
 -                                 要求最值其实很简单,假设法:
 
 -                                         假设数组第一位是最大(最小),每次把角标0的数去和角标1以上的的数对比,
 
 -                                         如果发现角标0的数大,则不动,否则让b去取;
 
 -                         */
 
 -              if(a[x] < a[x+1]){
 
 -    
 
 -              b = a[x + 1];
 
 -    
 
 -             }
 
 -   
 
 -         } 
 
 -          return b;
 
 -    }
 
  
-    //实现代码:
 
 -    class MaxMinTest
 
 -    {
 
 -                 public static void main(String[] args){
 
 -                         int [] a = {-1,-4,-5,-2,-7,-8};
 
  
 
-                 }
 
 -                 //求最大值
 
 -                 public int max(int[] arr){
 
 -                         
 
 -                         if(arr == null)
 
 -                                 throws new NullPointerException();
 
 -                         //假设第一位为最大值
 
 -                         int max = arr[0];
 
 -                         //从第二位开始比较
 
 -                         for(int i=1;i<arr.length;i++){
 
 -                                 if(max < arr[i]){
 
 -                                         max = arr[i];
 
 -                                 }
 
 -                         }
 
 -                         return max;
 
 -                 }
 
 -                 //求最小值
 
 -                 public int max(int[] arr){
 
 -                         
 
 -                         if(arr == null)
 
 -                                 throws new NullPointerException();
 
 -                         //假设第一位为最大值
 
 -                         int max = arr[0];
 
 -                         //从第二位开始比较
 
 -                         for(int i=1;i<arr.length;i++){
 
 -                                 if(max > arr[i]){
 
 -                                         max = arr[i];
 
 -                                 }
 
 -                         }
 
 -                         return max;
 
 -                 }
 
 -    }
 
  复制代码 |