两个数组的交集
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2]
示例 2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [9,4]
说明:
输出结果中的每个元素一定是唯一的。
我们可以不考虑输出结果的顺序。
题解
运用字典
class Solution {
/**
* @param Integer[] $nums1
* @param Integer[] $nums2
* @return Integer[]
*/
function intersection($nums1, $nums2) {
$list = [];
foreach($nums1 as $v){
$list[$v] = 0;
}
foreach($nums2 as $k=>$v){
if(!isset($list[$v])){
unset($nums2[$k]);
continue;
}
$list[$v]++;
if( $list[$v]>1)unset($nums2[$k]);
}
return $nums2;
}
}
时间复杂度:O(n)
空间复杂度:O(n) 运用字典