[算法][力扣350]两个数组的交集2
给你两个整数数组 nums1 和 nums2 请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数应与元素在两个数组中都出现的次数一致如果出现次数不一致则考虑取较小值。可以不考虑输出结果的顺序。示例 1输入nums1 [1,2,2,1], nums2 [2,2]输出[2,2]示例 2:输入nums1 [4,9,5], nums2 [9,4,9,8,4]输出[4,9]public class TestSet001 { public static void main(String[] args) { int[] nums1 {1, 2, 2, 1}; int[] nums2 {2, 2, 2, 2, 2, 2, 2}; int[] ret intersection(nums1, nums2); System.out.println(Arrays.toString(ret)); } public static int[] intersection(int[] nums1, int[] nums2) { // 统计nums1中每个元素出现的次数 HashMapInteger, Integer numMap new HashMap(); for (int num : nums1) { numMap.put(num, numMap.getOrDefault(num, 0) 1); } // 遍历nums2求两个数组的交集 ArrayListInteger resultList new ArrayList(); for (int num : nums2) { if (numMap.get(num) ! null numMap.get(num) 0) { resultList.add(num); numMap.put(num, numMap.get(num) - 1); } } // 集和转数组 int[] ret new int[resultList.size()]; int index 0; for (Integer ele : resultList) { ret[index] ele; } return ret; } }
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2410386.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!