JAVA算法:求给定的非负整型数组中任意两个元素之间的最大差值(JAVA代码)
给定一个无序的整型数组,数组元素均大于等于零。且数值在32位有符号整数范围内。
找出数组在排序之后,相邻元素之间最大的差值。
如果数组元素个数小于 2,则返回 0。
示例 1:
输入: [3,6,9,1]
输出: 3
解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。
示例 2:
输入: [10]
输出: 0
解释: 数组元素个数小于 2,因此返回 0。
算法设计
package com.bean.algorithm.basic;
import java.util.Arrays;
public class MaximumDifference {
public int maxDiff(int[] nums) {
int arrSize = nums.length;
if (arrSize <= 1) {
return 0;
}
int maxDiff = 0;
Arrays.sort(nums);
for (int i = 0; i < arrSize - 1; i++) {
maxDiff = Math.max(maxDiff, nums[i + 1] - nums[i]);
}
return maxDiff;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MaximumDifference md = new MaximumDifference();
int[] nums = new int[] { 3, 6, 9, 1 };
int ANSWER = -1;
ANSWER = md.maxDiff(nums);
System.out.println("ANSWER is: " + ANSWER);
}
}
程序输出结果:
ANSWER is: 3