LeetCode--454.四数相加 II(哈希表)
题目描述给你四个整数数组 nums1、nums2、nums3 和 nums4 数组长度都是 n 请你计算有多少个元组 (i, j, k, l) 能满足0 i, j, k, l nnums1[i] nums2[j] nums3[k] nums4[l] 0示例 1输入nums1 [1,2], nums2 [-2,-1], nums3 [-1,2], nums4 [0,2] 输出2 解释 两个元组如下 1. (0, 0, 0, 1) - nums1[0] nums2[0] nums3[0] nums4[1] 1 (-2) (-1) 2 0 2. (1, 1, 0, 0) - nums1[1] nums2[1] nums3[0] nums4[0] 2 (-1) (-1) 0 0示例 2输入nums1 [0], nums2 [0], nums3 [0], nums4 [0] 输出1提示n nums1.length n nums2.length n nums3.length n nums4.length 1 n 200 -228 nums1[i], nums2[i], nums3[i], nums4[i] 228代码classSolution{publicintfourSumCount(int[]nums1,int[]nums2,int[]nums3,int[]nums4){// 新建map,以 sum为key, count为valueMapInteger,IntegermapnewHashMap();// 初始化返回结果intresult0;// 遍历nums1和nums2求和for(inti:nums1){for(intj:nums2){intsumij;// 若不存在value会返回默认值0intcountmap.getOrDefault(sum,0)1;map.put(sum,count);}}// 遍历nums3和nums4求和for(inti:nums3){for(intj:nums4){intsumij;// 找是否在map中有相反数,若不存在则返回0intcountmap.getOrDefault(0-sum,0);resultcount;}}returnresult;}}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2482763.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!