给定两个整数数组分别为, ,找到它们的公共元素并按返回。
数据范围:
package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums1 int整型一维数组 * @param nums2 int整型一维数组 * @return int整型一维数组 */ func intersection( nums1 []int , nums2 []int ) []int { cnt1,cnt2:=map[int]int{},map[int]int{} for _,x:=range nums1{ cnt1[x]++ } for _,x:=range nums2{ cnt2[x]++ } ans:=[]int{} for k,_:=range cnt1{ if _,ok:=cnt2[k];ok{ ans=append(ans,k) } } return ans } func min(a,b int)int{ if a>b{ return b } return a }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums1 int整型一维数组 * @param nums1Len int nums1数组长度 * @param nums2 int整型一维数组 * @param nums2Len int nums2数组长度 * @return int整型一维数组 * @return int* returnSize 返回数组行数 */ int* intersection(int* nums1, int nums1Len, int* nums2, int nums2Len, int* returnSize ) { // write code here int* hash=(int *)calloc(1000,sizeof(int)); int* ans=(int *)malloc(1000*sizeof(int)); for(int i=0;i<nums1Len;i++){ hash[nums1[i]-1]=1; } int count=0; for(int j=0;j<nums2Len;j++){ if(hash[nums2[j]-1]==1){ hash[nums2[j]-1]+=1; if(hash[nums2[j]-1]==2){ ans[count++]=nums2[j]; } } } *returnSize=count; return ans; }
public ArrayList<Integer> intersection (ArrayList<Integer> nums1, ArrayList<Integer> nums2) { // write code here ArrayList<Integer> result = new ArrayList<Integer>(); for (int i = 0; i < nums1.size(); i++) { if (nums2.contains(nums1.get(i))) { result.add(nums1.get(i)); while(nums2.remove(nums1.get(i))); } } return result; }
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums1 int整型vector * @param nums2 int整型vector * @return int整型vector */ vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { // write code here unordered_set<int> arr1, arr2; for(auto& au:nums1) { arr1.insert(au); } for(auto& au:nums2) { arr2.insert(au); } return GetIntersection(arr1, arr2); } vector<int> GetIntersection(unordered_set<int>& arr1, unordered_set<int>& arr2) { if(arr1.size()>arr2.size()) return GetIntersection(arr2, arr1); vector<int> arr3; for(auto& au:arr1) { if(arr2.count(au)) arr3.push_back(au); } return arr3; } };
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums1 int整型ArrayList * @param nums2 int整型ArrayList * @return int整型ArrayList */ public ArrayList<Integer> intersection (ArrayList<Integer> nums1, ArrayList<Integer> nums2) { // write code here HashSet<Integer> set = new HashSet<>(); HashSet<Integer> temp = new HashSet<>(); ArrayList<Integer> res = new ArrayList<>(); for (int i = 0; i < nums1.size(); i++) { set.add(nums1.get(i)); } for (int i = 0; i < nums2.size(); i++) { if (set.contains(nums2.get(i))) { temp.add(nums2.get(i)); } } for (int t : temp) { res.add(t); } return res; } }