Skip to content

Commit cf625cc

Browse files
committed
commit solution 350
1 parent ad9d734 commit cf625cc

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ LeetCode
2020
|509|[Fibonacci Number](https://leetcode-cn.com/problems/fibonacci-number/) | [Java](https://github.com/xiao2shiqi/leetcode/blob/master/src/main/java/S509.java), [Ruby](https://github.com/xiao2shiqi/leetcode/blob/master/ruby/509.rb) | Easy
2121
|448|[Find All Numbers Disappeared in an Array](https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array/) | [Java](https://github.com/xiao2shiqi/leetcode/blob/master/src/main/java/S448.java), [Ruby](https://github.com/xiao2shiqi/leetcode/blob/master/ruby/448.rb) | Easy
2222
|414|[Third Maximum Number](https://leetcode-cn.com/problems/third-maximum-number/) | [Java](https://github.com/xiao2shiqi/leetcode/blob/master/src/main/java/S414.java) | Easy
23+
|350|[Intersection of Two Arrays II](https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/) | [Java](https://github.com/xiao2shiqi/leetcode/blob/master/src/main/java/S350.java) | Easy
2324
|283|[Move Zeroes](https://leetcode-cn.com/problems/move-zeroes/) | [Java](https://github.com/xiao2shiqi/leetcode/blob/master/src/main/java/S283.java), [Ruby](https://github.com/xiao2shiqi/leetcode/blob/master/ruby/283.rb) | Easy
2425
|268|[Missing Number](https://leetcode-cn.com/problems/missing-number/) | [Java](https://github.com/xiao2shiqi/leetcode/blob/master/src/main/java/S268.java), [Ruby](https://github.com/xiao2shiqi/leetcode/blob/master/ruby/268.rb) | Easy
2526
|263|[Ugly Number](https://leetcode-cn.com/problems/ugly-number/) | [Java](https://github.com/xiao2shiqi/leetcode/blob/master/src/main/java/S263.java), [Go](https://github.com/xiao2shiqi/leetcode/blob/master/go/263.go) | Easy

src/main/java/S350.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import java.util.*;
2+
3+
/**
4+
* LC#350: 两个数组的交集 II
5+
* Link:https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/
6+
* 思路1:将数组放进 hash 桶中记数,取出当 count > 1 则为数组的交集,最终重定义数组范围
7+
* 思路2:排序 + 双指针遍历,遍历两个数组,如果元素相等则加入结果集,如果元素不相等则较小的元素右移一位,直到数组遍历结束,时间复杂度 log n,空间复杂度O(1)
8+
* 思路3:直接使用 Java List 容器实现 (时间,空间效率都很低)
9+
* @author Phoenix on 2021/6/26.
10+
*/
11+
public class S350 {
12+
13+
public int[] intersect(int[] nums1, int[] nums2) {
14+
List<Integer> list1 = new ArrayList<>();
15+
for (int num : nums1) {
16+
list1.add(num);
17+
}
18+
List<Integer> list2 = new ArrayList<>();
19+
for (int num : nums2) {
20+
if (list1.contains(num)) {
21+
list2.add(num);
22+
// 从 list1 除去已匹配的数值
23+
list1.remove(Integer.valueOf(num));
24+
}
25+
}
26+
int[] res = new int[list2.size()];
27+
int i = 0;
28+
for (int num : list2) {
29+
res[i++] = num;
30+
}
31+
return res;
32+
}
33+
34+
public static void main(String[] args) {
35+
int[] nums1 = {1, 2, 2, 1};
36+
int[] nums2 = {2, 2};
37+
38+
int[] ints = new S350().intersect(nums1, nums2);
39+
System.out.println(Arrays.toString(ints));
40+
}
41+
}

0 commit comments

Comments
 (0)