给两个整型数组 nums1 和 nums2 ,返回 它们的交集 。
输出结果中的每个元素一定是 唯一 的。输出结果按照从小到大排列。
例如: nums1的内容是[1,2,6,5,9,8],nums2的内容是[3,9,6],最后输出的结果是[6,9]。
输入格式:
数组内元素用逗号分隔,数组与数组间用分号分割
输出格式:
输出两个数组中都包含的元素,且是唯一的
输入样例:
在这里输入二组数组。例如:
1,2,6,5,9,6,8;3,9,6
输出样例:
在这里给出相应的输出。例如:
6,9
提示
1 <= nums1.length, nums2.length <= 1000
0 <= nums1[i], nums2[i] <= 1000
:
1. 由于数据量级较少,可以使用bitset或者int[1000]数组
import java.util.Scanner;
import java.util.BitSet;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()){
String[] arr = scanner.nextLine().split(";");
String[] arr1s = arr[0].split(",");
String[] arr2s = arr[1].split(",");
if(arr1s.length == 0 || arr2s.length == 0){
System.out.println();
return;
}
BitSet b1 = new BitSet();
BitSet b2 = new BitSet();
for (String s : arr1s) {
b1.set(Integer.parseInt(s), true);
}
for (String s: arr2s) {
b2.set(Integer.parseInt(s), true);
}
b1.and(b2);
StringBuilder sb = new StringBuilder();
for (int i = b1.nextSetBit(0);i>=0;i=b1.nextSetBit(i+1)){
sb.append(i).append(",");
}
System.out.println(sb.substring(0, sb.length() - 1));
}
}
}