最大间距
题目描述
给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。
如果数组元素个数小于 2,则返回 0。
题目分析
输入: [3,6,9,1]
输出: 3
解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。
输入: [10]
输出: 0
解释: 数组元素个数小于 2,因此返回 0。
思路(一)
/**
* @param {number[]} nums
* @return {number}
*/
var maximumGap = function(nums) {
if(nums.length<2)return 0;
else{
let arr=nums.sort((a,b)=>a-b);
let values=[];
for(i=0;i<nums.length-1;i++){
values.push(arr[i+1]-arr[i]);
}
let arr1=values.sort((a,b)=>a-b);
return arr1[values.length-1];
}
};
思路(二)
/**
* @param {number[]} nums
* @return {number}
*/
var maximumGap = function(nums) {
if(nums.length<2)return 0;
else{
let arr=nums.sort((a,b)=>a-b);
let max=0;
for(let i=0,len=nums.length-1,tmp;i<len;i++){
tmp=arr[i+1]-arr[i];
if(tmp>max){
max=tmp;
}else{
max=max;
}
}
return max;
}
};