当前位置: 首页 > 后端技术 > Java

LeetCode-350-IntersectionofTwoArraysII

时间:2023-04-01 23:46:06 Java

IntersectionofTwoArraysII题目描述:给定两个数组,写一个函数来计算它们的交集。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:数组遍历首先声明一个Map为firstMap,其中key为出现的次数,value为对应的次数出现的次数,然后遍历nums1,将nums和出现次数初始化为firstMap;然后,声明一个数组作为结果;然后遍历nums2中的数字,判断firstMap的key是否包含该数字且对应的数字是否大于0,则将这个数字放入结果中。遍历完成后,将result的所有数字作为结果返回。importjava.util.Arrays;importjava.util.HashMap;importjava.util.Map;publicclassLeetCode_350{publicstaticint[]intersect(int[]nums1,int[]nums2){//第一个数组中的数字以及出现的次数MapfirstMap=newHashMap<>();for(inti:nums1){if(firstMap.containsKey(i)){firstMap.put(i,firstMap.get(i)+1);}else{firstMap.put(i,1);}}int[]result=newint[nums1.length];整数索引=0;for(inti:nums2){if(firstMap.containsKey(i)&&firstMap.get(i)>0){结果[index++]=i;firstMap.put(i,firstMap.get(i)-1);}}returnArrays.copyOfRange(result,0,index);}publicstaticvoidmain(String[]args){int[]nums1=newint[]{1,2,2,1},nums2=newint[]{2,2};for(inti:intersect(nums1,nums2)){System.out.print(i+"");}}}【每日留言】用你的微笑改变世界,不要让世界改变你的微笑