アルゴリズムは--->最も調和のとれたシーケンスを求めている[使用マッピング]

説明

  • 調和アレイは、アレイに正確1の要素の最大値と最小値の差を意味します。

  • さて、整数の配列を指定して、あなたはすべての可能なサブシーケンスにおける調和の最長シーケンスの長さを見つける必要があります。

  • 入力:[1,3,2,2,5,2,3,7]
    出力:5
    理由:ハーモニー最長の配列である:[3,2,2,2,3]。


思考

  • 配列の値の数、および値が表示されますのためのマップの統計情報を作成します。
  • 最大を作成し、新興の最大数を保存します
  • マップに表示される現在の値が1以上である回数のマップを行き来ルック
var findLHS = function (nums) {
    let map = new Map();
    for (let i = 0; i < nums.length; i++) {
        if (map.has(nums[i])) {
            map.set(nums[i], map.get(nums[i]) + 1)
        } else {
            map.set(nums[i], 1);
        }
    }
    let max = 0;
    for(let [key , value] of map){
        if(map.has(key +1)){
            max = Math.max(max, map.get(key +1) + map.get(key));
        }
    }
    return max
};

概要

  • マップの初期化const map = new Map()
  • それは要素が含まれているかどうかを判断するために、地図map.has(xxx)
  • マップの値を取得します。map.get(xxx)
  • 値マップを設定します。map.set(xxx, yyy)
  • マップトラバーサルfor(let [key, value] of map) { xxx }
公開された177元の記事 ウォン称賛22 ビュー20000 +

おすすめ

転載: blog.csdn.net/piano9425/article/details/103557803