有大佬可以分享下最佳题解吗
总感觉我这个还不太行。
public class Main {
public static void main(String[] args) {
int[] arr1 = {1, 2, 2, 3};
int[] arr2 = {2, 3};
int test = new Solution().test(arr1, arr2);
System.out.println(test);//12
}
}
class Solution {
public int test(int[] nums1, int[] nums2) {
int sum = 0;
HashMap<Integer, Integer> hashMap = new HashMap<>();
for (int i = 0; i < nums1.length; i++) {
hashMap.put(nums1[i], hashMap.getOrDefault(nums1[i], 0) + 1);
}
for (int i = 0; i < nums2.length; i++) {
hashMap.put(nums2[i], hashMap.getOrDefault(nums2[i], 0) + 1);
}
for (Map.Entry<Integer, Integer> entry : hashMap.entrySet()) {
if (entry.getValue() > 1) sum += entry.getKey() * entry.getValue();
}
return sum;
}
}
这是一个Java程序,用于计算两个数组中共有元素出现次数的乘积总和。程序首先创建一个HashMap来存储数组中元素及其出现次数,然后遍历两个数组更新HashMap。最后,遍历HashMap,如果元素值大于1,则将该元素与其出现次数相乘并累加到总和中。输出为12,表示存在重复元素2和3,它们的乘积分别为4和6,总和为12。
1129

被折叠的 条评论
为什么被折叠?



