[leetcode]二つの配列の交差点II[javascript]
3265 ワード
https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/
説明
二つの配列を与え、それらの交差を計算する関数を作成します.例1:出力結果の各要素の出現回数は、要素が2つの配列に現れる回数と一致していなければならない. 出力結果の順序を考慮しなくてもいいです. ステップ:与えられた配列が順序付けされている場合?どうやってあなたのアルゴリズムを最適化しますか? もし_nums 1_nums 2_小さいのが多いですが、どの方法がもっと優れていますか? もし_nums 2_ディスクに記憶されている要素は限られていますが、メモリにすべての要素を一度にロードすることはできません.どうすればいいですか? 分析
前の問題と同じように、先に小さいのを見つけて、遍歴して、indexOfを使うと同時に、その元素のspliceを落とします.
2つの配列の交叉
説明
二つの配列を与え、それらの交差を計算する関数を作成します.例1:
: nums1 = [1,2,2,1], nums2 = [2,2]
: [2,2]
例2: : nums1 = [4,9,5], nums2 = [9,4,9,8,4]
: [4,9]
説明:前の問題と同じように、先に小さいのを見つけて、遍歴して、indexOfを使うと同時に、その元素のspliceを落とします.
var intersect = function(nums1, nums2) {
let tmp = [], arr = []
if (nums1.length > nums2.length) {
tmp = nums1
nums1 = nums2
nums2 = tmp
}
for(let key of nums1){
temp = nums2.indexOf(key)
if(temp > -1) {
arr.push(key);
nums2.splice(temp,1)
}
}
return arr
};
関連リンク2つの配列の交叉