js版数据结构与算法—5.6最大区间
export default (arr) => {
// 如果数组长度小于2返回0
if (arr.length < 2) {
return 0
}
// 排序
arr.sort()
// 用它来保存相邻元素的最大差值
let max = 0
for (let i = 0, len = arr.length - 1, tmp; i < len; i++) {
tmp = arr[i + 1] - arr[i]
if (tmp > max) {
max = tmp
}
}
return max
}
export default (arr) => {
if (arr.length < 2) {
return 0
}
let max = 0
let len = arr.length - 1
let space
for (let i = len, tmp; i > 0; i--) {
for (let j = 0; j < i; j++) {
tmp = arr[j]
if (tmp > arr[j + 1]) {
arr[j] = arr[j + 1]
arr[j + 1] = tmp
}
}
if (i < len) {
space = arr[i + 1] - arr[i]
if (space > max) {
max = space
}
}
}
return Math.max(max, arr[1] - arr[0])
}
import sort from '../../code/sort/lesson3'
test('sort:input2', () => {
expect(sort([3, 6, 9, 1])).toBe(3)
})
test('sort:input3', () => {
expect(sort([10])).toBe(0)
})
test('sort:input4', () => {
expect(sort([13, 16, 19, 1])).toBe(12)
// [1,13,16,19]
})