隨筆-最大間距/陣列中相鄰元素的最大差值
阿新 • • 發佈:2019-01-01
題目:給定一個無序的陣列,找出陣列在排序之後,相鄰元素之間最大的差值。
如果陣列元素個數小於 2,則返回 0。
示例 1:
輸入: [3,6,9,1]
輸出: 3
解釋: 排序後的陣列是 [1,3,6,9], 其中相鄰元素 (3,6) 和 (6,9) 之間都存在最大差值 3。
示例 2:
輸入: [10]
輸出: 0
解釋: 陣列元素個數小於 2,因此返回 0。
說明:
你可以假設陣列中所有元素都是非負整數,且數值在 32 位有符號整數範圍內。
請嘗試線上性時間複雜度和空間複雜度的條件下解決此問題。
思路:下面程式碼就是普通的快排外加O(n)時間複雜度的比較解法,哪位大佬如有更巧妙解法,請留言!
class Solution { public int maximumGap(int[] nums) { if(nums.length<2){ return 0; } Arrays.sort(nums); int sum=0; int i=1; while(i<nums.length){ int sum1=nums[i]-nums[i-1]; if(sum1>sum){ sum=sum1; }else{ i++; } } return sum; } }