Skip to content

Latest commit

 

History

History
61 lines (48 loc) · 1.45 KB

349md.md

File metadata and controls

61 lines (48 loc) · 1.45 KB

LeetCode 349. Intersection of Two Arrays

##題目 Given two arrays, write a function to compute their intersection.

Example:
Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].

Note:
Each element in the result must be unique.
The result can be in any order.

##翻譯 尋找兩個陣列的交集。

範例:
nums1 = [1, 2, 2, 1],nums2 = [2, 2],return [2]。

注意:
同樣的數字只出現一次,回傳的陣列內容不限排序。

##思路

  1. 先判斷nums1與nums2長度誰比較短,我們就稱它叫ary拿來跑迴圈,較長的陣列叫store。
  2. ary[i]如果可以在store中找到值,表示這是交集的數字。
  3. 判斷結果陣列(result)是否已經有交集數字,如果沒有就新增到結果陣列(result)中。

##解題

/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
 */
var intersection = function(nums1, nums2) {
    var result = [];
	var store;  // 長array
	var ary;    // 短array
	
	// 判斷nums1,nums2長度
	if(nums1.length > nums2.length){
		store = nums1;
		ary = nums2;
	} else {
		store = nums2;
		ary = nums1;
	}
	
	// 只需需要跑較短的array就行
    for(var i = 0 ; i < ary.length ; i++){
		var value = ary[i];
		// 如果可以在長array中找到目前的值,而且在結果array中找不到,代表這個值是新的交集
		if(store.indexOf(value) >= 0 && result.indexOf(value) == -1){
		    result.push(value);
		}
	}
    return result;
};