JS配列アルゴリズムタイトル01

タイトル:[2、10、3、4、5、11、10、11、20、例えば、長さ10のランダムな整数型配列を生成]、に配置され、例えば、新しい配列、要件の新しい配列は、以下[2、3、4、5]、[10、11]、[20]]。




回答:
関数formArray(ARR){ 
            CONST sortedArr = Array.from(新しい新しいセット(ARR))ソート((A、B)=> A - B);
             // マップ定義 
            地図= CONSTを新しい新しいマップ(); 
            
            sortedArr.forEach ((V) => {
                 // インデックス得る 
                CONSTをMath.floorキー=(V / 10 );
                 // マップに添字値取得 
                = CONSTグループをmap.getとして(キー)|| [];
                 / / 電流値プッシュ
                group.push(V)を;
                 // リフレッシュ目標値を現在の地図で
                map.set(キー群)。 
            }); 
            //解体用の配列返し
            リターン[... map.values()]; 
        } 

        // 連続バージョンの検索
        機能formArray1(ARR){ 
            CONST sortedArr = Array.from(新しい新しいセット(ARR))をソート((A、B)=。 > - B)を、
    
            戻り sortedArr.reduce((ACC、CUR)=> {
                 // 現在のアレイと、最終的に、最後の配列値取得 
                CONST = lastArr acc.slice()POPを()||。[]。
                LASTVALのconst = lastArr.slice()POP();.
                 // LASTVAL = nullの意義不明のこの判断、直感的に、最初のサイクルがヌル、未定義でない場合であっても!
                IF(= LASTVAL!ヌル- CUR && LASTVAL === 1 ){
                     // 中の最後のアレイスロー
                    ; lastArr.push(CUR)を
                } {
                     // 最後のメモリアレイは、最大となる
                    acc.push([CUR])。
                } 

                戻りACCを; 
            }、[]); 
        } 

        関数 genNumArray(NUM、ベース= 100 ){
             戻り Array.from({長さ:NUM}、()=> Math.floor(Math.random()* )塩基)。
        } 

        CONST ARR = genNumArray(10、20である); // [2、10 ,. 3 ,. 4 ,. 5 ,. 11、10 ,. 11、20]、 
        CONSTはRES =formArray(ARR)。
        CONST RES1 = formArray1(ARR)。

        console.log( `RESの$ {JSON.stringify(RES)}`)。

 

 

おすすめ

転載: www.cnblogs.com/wangxi01/p/11272621.html