4sum-ii

https://leetcode.com/problems/4sum-ii/

用了个两两匹配的方法,还是不错的

 

复制代码
package com.company;


import java.util.HashMap;
import java.util.Map;

class Solution {
    public int fourSumCount(int[] A, int[] B, int[] C, int[] D) {
        Map<Integer, Integer> mp1 = new HashMap<>();
        int len = A.length;
        int sum = 0;

        for (int i=0; i<len; i++) {
            for (int j=0; j<len; j++) {
                sum = A[i] + B[j];
                if (mp1.containsKey(sum)) {
                    mp1.put(sum, mp1.get(sum)+1);
                }
                else {
                    mp1.put(sum, 1);
                }
            }
        }

        int ret = 0;
        for (int i=0; i<len; i++) {
            for (int j=0; j<len; j++) {
                sum = 0 - C[i] - D[j];
                if (mp1.containsKey(sum)) {
                    ret += mp1.get(sum);
                }
            }
        }
        return ret;

    }
}

public class Main {

    public static void main(String[] args) throws InterruptedException {

        System.out.println("Hello!");
        Solution solution = new Solution();

        // Your Codec object will be instantiated and called as such:
        int[] A = {1, 2};
        int[] B = {-2, -1};
        int[] C = {-1, 2};
        int[] D = {0, 2};
        int ret = solution.fourSumCount(A, B, C, D);
        System.out.printf("ret:%d\n", ret);

        System.out.println();

    }

}
复制代码

 

posted @   blcblc  阅读(460)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示