美文网首页
降序输出并且连续数字之间只输出最大值和最小值

降序输出并且连续数字之间只输出最大值和最小值

作者: kugua666 | 来源:发表于2020-09-13 16:50 被阅读0次

题目:将数组进行降序,数组中不会出现重复数字,连续数字间,只取最大值和最小值。例如:[4, 7, 2, 1, 5, 8, 9, 11]输出为[11, 9, 7, 5, 4, 2, 1]。
思路:先将数组降序,然后对不符合条件的数字给过滤掉,比如这一项如果即等于前一项减1,又等于后一项加1,说明的过滤掉。
法一:

function fn(arr) {
  arr.sort((a, b) => b - a)
  let res = []
  for (let i = 0; i < arr.length; i++) {    
    if(arr[i] !== arr[i + 1] + 1 || arr[i-1] !== arr[i] + 1) {             
        res.push(arr[i])     
    }      
  }
  return res
}
let a = [4, 7, 2, 1, 5, 8, 9, 11]
console.log(fn(a)) // 输出[11, 9, 7, 5, 4, 2, 1]

法二:

let arr = [4, 7, 2, 1, 5, 8, 9, 11]
arr = arr.sort((a, b) => b-a).filter((item, i) => item !== arr[i+1] + 1 || arr[i-1] !== item +1)
console.log(arr) // 输出[11, 9, 7, 5, 4, 2, 1]

相关文章

  • 降序输出并且连续数字之间只输出最大值和最小值

    题目:将数组进行降序,数组中不会出现重复数字,连续数字间,只取最大值和最小值。例如:[4, 7, 2, 1, 5,...

  • CodeFoeces-767A

    题目 原题链接:A. Snacktower 题意 给出n个数字,由大致小若存在连续的下降序列则输出,否则输出空行。 代码

  • 10.19习题

    1.给数组输入10个数,输出其中的最大值和最小值 2.输入行数,输出n行空心菱形 3.回行取数,自己输入的九个数字...

  • 2020-12-19 sort() sorted()

    字符串的降序 输入:数字或字符串输出:降序后的数字 How to convert and sort? step1:...

  • JS基础 -- while循环

    /** 题:* 向页面输出连续的数字** 先不考虑连续输出数字,首先考虑的是向页面输出的话,在js中应该用哪...

  • matlab里面的max和min

    求数组最大值 输出: 求矩阵最大值 输出: 输出: 输出: 对 min 来说是一样的

  • C-求屏幕输入数的最大、最小、平均值

    从屏幕获取十个数,以函数调用的形式求最大值、最小值、平均值,并输出(3个函数) 注意:数的类型未定 输出:

  • 多语言解编程题之最大子串和

    给予一个整数字符串,找出所有连续子串和的最大值。样例输入:-23 17 -7 11 -2 1 -34样例输出:21...

  • 10.13-3 指针与一维数组相关运算

    【输出数组最大值】 【数组逆序输出】

  • Java面试题二

    java基础练习:选择结构(if、switch) 练习1:提示用户输入三个整数,判断并输出最大值、最小值 练习2:...

网友评论

      本文标题:降序输出并且连续数字之间只输出最大值和最小值

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