您的位置:首页 > 编程语言 > Java开发

JAVA语言之相邻两数最大差值

2016-05-09 19:28 417 查看
有一个整形数组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];
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: