Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit cf625cc

Browse files
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)

AltStyle によって変換されたページ (->オリジナル) /