無序數組array, 找到數組中兩個數的最大差值


題目鏈接:

無序數組array, 找到數組中兩個數的最大差值, 且大數出現在小數之后,如:arr[i]-arr[j], 且 i<j。比如: array 是 [2, 3, 10, 6, 4, 8, 1],最大差值是8(10-2)

 

解題思路:

記錄當前訪問過的數組中的最小值 min_val;

2) 當前元素值arr[i] - min_val 和 max_diff作比較

若大於 max_diff , 則更新它的值

 

 1 import javax.validation.constraints.Min;
 2 
 3 
 4 public class Maxarea {
 5     
 6 
 7     public static int maxArea(int[] height) {
 8         
 9         int max_diff = Integer.MIN_VALUE;
10         int min = Integer.MAX_VALUE;
11         for(int i=0;i<height.length;i++)
12         {
13             if(height[i]<min)//事先設置min為最大的值,如果遇到一個比min還小的,就存下來,最后一個數就是最小的數
14             {
15                 min = height[i];
16             }
17             
18             if(max_diff<(height[i]-min))//事先設置max為最小的值,如果找到一個比他還大的就存下來,最后一個數就是最大的數
19             {
20                 max_diff = height[i]-min;
21             }
22             
23         }
24         
25         return max_diff;
26         
27     }
28     
29     public static void main(String[] args) {
30         int []a ={2, 3, 10, 6, 4, 8, 1};
31         
32         System.out.println(maxArea(a));
33     }
34 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM