JAVA語言之相鄰兩數最大差值
阿新 • • 發佈:2019-01-25
有一個整形陣列A,請設計一個複雜度為O(n)的演算法,算出排序後相鄰兩數的最大差值。
給定一個int陣列A和A的大小n,請返回最大的差值。保證陣列元素多於1個。
測試樣例: [1,2,5,4,6],5 返回:2 程式碼如下:import java.util.*; public class Gap { public int maxGap(int[] A, int n) { for(int i=0;i<n-1;i++){ for(int j=0;j<n-i-1;j++){ if(A[j]>A[j+1]){ int t=A[j]; A[j]=A[j+1]; A[j+1]=t; } } } int[] B=new int[n-1]; for(int i=0;i<n-1;i++){ B[i]=Math.abs(A[i+1]-A[i]); } for(int i=0;i<B.length-1;i++){ for(int j=0;j<n-i-1;j++){ if(B[i]>B[i+1]){ int t=B[i]; B[i]=B[i+1]; B[i+1]=t; } } } return B[n-2]; } }