• 一个名词“非递减有序数列”引发的事故


    描述:一个非递减有序数列,返回每个数字的平方组成的新数组,这个新数组也需要满足非递减有序数列

    名词普及

    非递减有序数列:意思是关键字递增序排列,但是并非单调递增(因为有重复的关键字)从小到大或者允许中间有相等的情形
        1, 2, 3, 4, 5 递增排列
        9, 8, 7, 6, 5 递减排列
        1,2,3,3,4,5,8,8 非递减排列
        9,8,7,7,6,5,5,2,1 非递增排列

    一、Map

    let arr = [-4,-1,0,3,4,10];
    
    function squareArray(data){
        let newArr = data.map(ele=>{
            return Math.pow(ele,2) 
        })
        return newArr.sort(function(a,b){return a-b})
    }
    
    var res = squareArray(arr);
    console.log(res);
    

    二、双指针

    var squareArray = function(A) {
        let res = []
        let left = 0
        let right = A.length - 1  //5
        let index = right   //用这个记录位置
        while(left <= right) {
            let num1 = A[left]**2  //16
            let num2 = A[right]**2 //100 16
            if(num2 > num1) {
                res[index] = num2   [n,n,9,n,n,100]
                right--  //4 3 2
            }else {
                res[index] = num1  [0,1,n,16,16,100]
                left++   //1 2 3
            }
            index--   //4 3 2 1 0
        }
        return res
    };
    
    var res = squareArray(arr);
    console.log(res);
    
  • 相关阅读:
    bugku 求getshell
    HTTP之content-type
    web之robots.txt
    HTTP之User-Agent大全
    bugku 细心
    PHP输入流
    bugku web8
    PHP中sha1()函数和md5()函数的绕过
    bugku 各种·绕过
    【学术篇】烧水问题 打表找规律做法
  • 原文地址:https://www.cnblogs.com/qjsbk/p/13825511.html
Copyright © 2020-2023  润新知