leetcode-164、最大间距
阅读原文时间:2023年07月13日阅读:1

export default (arr) => {
  // 如果数组长度小于2返回0
  if (arr.length < 2) {
    return 0
  }
  // 排序
  arr.sort()
  // 用它来保存相邻元素的最大差值
  let max = 0
  for (let i = 0, len = arr.length - 1, tem; i < len; i++) {
    tem = arr[i + 1] - arr[i]
    if (tem > max) {
      max = tem
    }
  }
  return max
}

测试用例

import sort from '../../code/sort/lesson3'

test('input1', () => {
  expect(sort([3, 6, 9, 1])).toBe(3)
})

test('input2', () => {
  expect(sort([10])).toBe(0)
})



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('input1', () => {
  expect(sort([3, 6, 9, 1])).toBe(3)
})

test('input2', () => {
  expect(sort([10])).toBe(0)
})

test('input3', () => {
  expect(sort([13, 16, 19, 1])).toBe(12)
})