美文网首页
数组中有五个数字,求最大相连元素的个数

数组中有五个数字,求最大相连元素的个数

作者: 不知道的是 | 来源:发表于2018-11-23 20:03 被阅读0次
const arr1 = [5, 2, 3, 4, 10]
const arr2 = [3, 2, 6, 8, 7]
const arr3 = [2, 3, 4, 5, 1]
const arr4 = [25, 20, 1, 11, 9]
const arr5 = [24, 12, 4, 13, 11]
const arr6 = [24, 12, 4, 13, 11, 23, 5, 18, 19, 20, 39, 22, 37, 40, 36, 38]

function fn(arr) {
  // [24, 13, 12, 11, 4]
  arr.sort(function (a, b) {
    return b - a
  })

  const length = arr.length

  const list = []

  for (let i = 0; i < length; i++) {
    list.push(1)
  }

  // console.log(list)

  let index = 0

  for (let i = 1; i < length; i++) {
    const x = arr[i - 1]
    const y = arr[i]
    const z = x - y
    if (z !== 1) {
      if (list[index] > 1) {
        list[++index] = -z
        index++
      } else if (z === 1) {
        list[index] = -z
        index++
      }
    }

    if (z === 1) {
      list[index] += z
    }
  }

  // console.log(list)

  const filteredList = list.filter(function (value, index, array) {
    return value > 1
  })

  // console.log(filteredList)

  let total = 0

  if (filteredList.toString() !== '') {
    total = Math.max.apply(null, filteredList)
  }

  console.log(`相连元素个数为 ${total}`)
}

fn(arr1)
fn(arr2)
fn(arr3)
fn(arr4)
fn(arr5)
fn(arr6)
image.png

https://codepen.io/MonguDykrai/pen/xQzyGw

相关文章

  • 数组中有五个数字,求最大相连元素的个数

    https://codepen.io/MonguDykrai/pen/xQzyGw

  • 常用算法

    求最大公约数 判断字符串是否为回文串 判断数字是否为质数 判断数组中是否存在相同元素 求阶乘 二进制中1的个数

  • 两个子数组最大累加和(Array DP)

    题目 求一个数组的两个子数组的最大累加和,其中这两个数组不能有重复元素。[算法原型]http://www.jian...

  • day7homework

    1.已知一个数字列表,求列表中心元素。元素个数为单数 元素个数为偶数 2.已知一个数字列表,求所有元素和。 3.已...

  • 亚马逊校园招聘在线笔试题(一)

    题目:给定一个数组和一个数字,请在这个数组的元素之间添加+-符号,使这个数组元素运算之后的结果是这个数字,比如{2...

  • 算法训练2

    题目描述:一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],...

  • Javascript学习笔记——7.4 数组长度

    每个数组都有一个length属性,即数组长度.数组长度不是元素的个数 非稀疏数组的length是元素的个数,比最大...

  • 05-Swift 数组的使用

    一、数组的定义 二、数组的基本操作 增加元素 删除元素 改元素 查元素 三、数组的其它操作 求个数 遍历 数组的合并

  • 连续最大和

    一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3...

  • 算法(一):选择排序

    一、数组和链表 1.数组: 一个数组中的所有元素在内存中必须是相连的 同一个数组中的所有元素类型必须相同(int、...

网友评论

      本文标题:数组中有五个数字,求最大相连元素的个数

      本文链接:https://www.haomeiwen.com/subject/qcjsqqtx.html