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