java题解LeetCode454.四数相加示例
正文
给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:
0 <= i, j, k, l < n
nums1[i] + nums2[j] + nums3[k] + nums4[l] == 0
解决问题
将n的四次方转变为n的平方,主要通过按两个两个分组打包实现,此外注意map中记录的是前两个数组中的内容两两相加的值的出现次数,这样做是为了在后面两个数组中寻找时,对于每个匹配的组合,都在总的次数中加上对应值出现次数,这样做是因为该题不去重,每个元组都是独特的,所以都要算上
public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) { int n=nums1.length; int count=0; Map<Integer,Integer> map=new HashMap<>(); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if(map.containsKey(nums1[i]+nums2[j])){ int temp=map.get(nums1[i]+nums2[j])+1; map.put(nums1[i]+nums2[j],temp); } else{ map.put(nums1[i]+nums2[j],1); } } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { int temp=-(nums4[j]+nums3[i]); if(map.containsKey(temp)){ count=count+map.get(temp); } } } return count; }
以上就是java题解LeetCode454.四数相加示例的详细内容,更多关于java LeetCode四数相加的资料请关注脚本之家其它相关文章!
相关文章
spring boot实现阿里云视频点播上传视频功能(复制粘贴即可)
这篇文章主要介绍了spring boot实现阿里云视频点播上传视频功能(复制粘贴即可),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-12-12在SpringBoot框架下实现Excel导入导出的方法详解
SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程,今天我们就使用纯前对按表格控件带大家了解,如何在Spring Boot框架下实现Excel服务端导入导出,需要的朋友可以参考下2023-06-06Java Swing CardLayout卡片布局的实现示例
这篇文章主要介绍了Java Swing CardLayout卡片布局的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-12-12Spring Boot 2.4 对多环境配置的支持更改示例代码
这篇文章主要介绍了Spring Boot 2.4 对多环境配置的支持更改,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-12-12
最新评论