最大差值
给定一个未排序的数列,找到此数列在已排序状态下的两个相邻值的最大差值,少于两个值时返回0。例如:给定数列 [1,3,2,0,1,6,8] 则 最大差值为3。
function differ(arr){
if (arr.length<2) return 0
arr.sort(function(a,b){
return a-b
})
var maxDiffer = 0
for (var i = 0; i < arr.length-1; i++) {
if (arr[i+1] - arr[i] > maxDiffer) {
maxDiffer = arr[i+1] - arr[i]
}
}
return maxDiffer
}
用到了数组方法sort(),复习一下:
arr.sort()
- 该操作将arr排序后返回。原数组改变,返回的是排序后的数组。
- 可以接受一个函数作为参数,不传参的情况下将元素转换为字符串,然后比较它们的UTF-16代码单元值序列
- 传入一个函数的情况下:按照该函数指定的方法对arr进行排序。
函数接受两个参数:a,b
如果函数的返回值小于0,那么a排在b的前面,
如果函数的返回值等于0,那么a,b保持不动
*如果函数的返回值大于0,那么a排在b的后面
网友评论