アルゴリズムハッシュ

1028 ワード

データ構造はハッシュキー値ペアからなる
  const myMap = new Map();
問題の説明
多くのマラソン選手がマラソンに参加した.1人の選手を除いて、すべての選手がマラソンを完走した.
マラソンに出場する選手の名前と完走した選手の名前の並びが完成したら、完走していない選手の名前を返す解決関数を書いてください.
せいげんじょうけん
マラソンに出場する選手は1人以上10万人以下だ.
完了長さは参加者の長さ1より小さい.
参加者の名前には、少なくとも1つまたは20個の小文字が含まれています.
参加者は同名であってもよい.
  • 参加者が並び、鍵:名前、価値:明洙
  • として登録されている.
  • キーが既に存在する場合は+1、そうでない場合は1に設定されます.
  • で完了した人の配列でmyMapにキーが存在し、0より大きい場合valueでは-1
  • 回転mymapは値が0より大きい場合に完了しないことを示すため、キー値を正解の
  • に累積する.
    最初は単純for文を使用していましたが、重複している場合は考慮できませんのでkeyvalueを使用する必要があります
    
    
    function solution(participant, completion) {
      var answer = "";
      const myMap = new Map();
      for (let x of participant) {
        if (myMap.get(x)) myMap.set(x, myMap.get(x) + 1);
        else myMap.set(x, 1);
      }
      for (let x of completion) {
        if (myMap.get(x) > 0) myMap.set(x, myMap.get(x) - 1);
      }
      for (let [key, value] of myMap) {
        if (value > 0) answer += key;
      }
      return answer;
    }