JAVA算法:求給定的無序非負整型數組中任意兩個元素之間的最大差值(JAVA代碼)

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章