字节跳动面试题,给你一个每一项都是数值混乱顺序的数组,只要里面正确顺序的值输出。如[5,1,3,6,2,7],只要[1,2,7]

        // 字节跳动面试题,给你一个每一项都是数值混乱顺序的数组,只要里面正确顺序的值输出,如[5,1,3,6,2,7],只要[1,2,7]
        let arr = [5,1,3,6,2,7] // 只要127,正确顺序
        // 思路,当前项后面没有比他更小的,而且已保存没有跟他重复的,就保存
        
        // 首先声明一个数组保存数据
        let list = [];
        // 再声明一个变量保存初始需要判断的项和初始下标
        let i = 0;
        let num = arr[i];
        // 写一个递归函数,处理每一次的内部循环
        function ArrList(arr,num,list,i){
            let flog = true;
            for(let j = i;j<arr.length;j++){
                // 只要有比num小的,就终止
                if(num>arr[j]){
                    flog = false
                }
            }
            // 没有比他小的,并且查重就保存num
            if(flog&&!list.includes(num)){
                list.push(num)
            }
        }
        // 然后开始初始数组的循环
        arr.forEach((item,index)=>{
            i = index;
            num = arr[i];
            ArrList(arr,num,list,i)
        })
        // 最后打印list
        console.log(list); // 1,2,7
原文地址:https://www.cnblogs.com/supermanYU/p/15246411.html