java题解LeetCode454.四数相加示例

 更新时间:2023年10月15日 10:33:44   作者:健身的墨镜  
这篇文章主要为大家介绍了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四数相加的资料请关注脚本之家其它相关文章!

相关文章

  • 深入介绍Java对象初始化

    深入介绍Java对象初始化

    本文对Java如何执行对象的初始化做一个详细深入地介绍。有需要的小伙伴们可以参考。
    2016-07-07
  • java设计模式学习之策略模式

    java设计模式学习之策略模式

    这篇文章主要为大家详细介绍了java设计模式学习之策略模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Spring Boot中如何使用断路器详解

    Spring Boot中如何使用断路器详解

    这篇文章主要给大家介绍了关于Spring Boot中如何使用断路器的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • WeakHashMap 和 HashMap 区别及使用场景

    WeakHashMap 和 HashMap 区别及使用场景

    这篇文章主要为大家介绍了WeakHashMap 和 HashMap 的区别是什么以及何时使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • SpringBoot详细讲解断言机制原理

    SpringBoot详细讲解断言机制原理

    断言Assertion是测试方法中的核心部分,用来对测试需要满足的条件进行验证。这些断言方法都是org.junit.jupiter.api.Assertions的静态方法。检查业务逻辑返回的数据是否合理。所有的测试运行结束以后,会有一个详细的测试报告
    2022-06-06
  • Mybatis-Plus主键生成策略的方法

    Mybatis-Plus主键生成策略的方法

    本文主要介绍了Mybatis-Plus主键生成策略的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 详谈springboot过滤器和拦截器的实现及区别

    详谈springboot过滤器和拦截器的实现及区别

    今天小编就为大家分享一篇详谈springboot过滤器和拦截器的实现及区别,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • Java中MapStruct的使用详解

    Java中MapStruct的使用详解

    这篇文章主要介绍了Java中MapStruct的使用详解,mapstruct,全称是org.mapstruct.Mapper, 是将接口或抽象类标记为映射器,并通过MapStruct为这个接口或者抽象类生成一个实现类,大大简化了Java bean类型之间转换,需要的朋友可以参考下
    2023-09-09
  • 利用MultipartFile实现文件上传功能

    利用MultipartFile实现文件上传功能

    这篇文章主要为大家详细介绍了利用MultipartFile实现文件上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 在Spring Boot中加载XML配置的完整步骤

    在Spring Boot中加载XML配置的完整步骤

    这篇文章主要给大家介绍了关于在Spring Boot中加载XML配置的完整步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09

最新评论