// 字节跳动面试题,给你一个每一项都是数值混乱顺序的数组,只要里面正确顺序的值输出,如[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