1. 程式人生 > >JAVA語言之相鄰兩數最大差值

JAVA語言之相鄰兩數最大差值

有一個整形陣列A,請設計一個複雜度為O(n)的演算法,算出排序後相鄰兩數的最大差值。

給定一個int陣列AA的大小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];
    }
}