zoukankan      html  css  js  c++  java
  • leetcode-164、最大间距

    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)
    })
    
    
    今天你学习了吗!!!
  • 相关阅读:
    卷积神经网络要点解析
    quicksork解析
    梳理知识点(一)
    高斯混合模型以及EM算法
    adaboost/gdbt/xgboos/random forestt的异同点
    Anki使用
    Markdown写作入门
    VBox复制虚拟机镜像后的操作
    Hadoop集群之vsftpd设置
    使用Oracle函数将银行归类,方便引用
  • 原文地址:https://www.cnblogs.com/nayek/p/11906666.html
Copyright © 2011-2022 走看看