zoukankan      html  css  js  c++  java
  • 字节跳动面试题,给你一个每一项都是数值混乱顺序的数组,只要里面正确顺序的值输出。如[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
  • 相关阅读:
    view如何被添加到window上并显示出来
    事件分发机制
    绘制机制
    setContentView
    消息机制——handler
    布局文件是如何被解析的?
    Xamarin.ios引用第三方SDK
    Xamarin.ios——First APP
    UITextView 文本垂直居中
    从NavigationController 下的UITableView中移除 header
  • 原文地址:https://www.cnblogs.com/supermanYU/p/15246411.html
Copyright © 2011-2022 走看看