LeetCode || Hash
Posted 舒羽倾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode || Hash相关的知识,希望对你有一定的参考价值。
454. 4Sum II
题意:给四个数组,每个数组内取一个数使得四个数和为0,问有多少种取法
思路:枚举为On4,考虑两个数组,On2枚举所有可能的和,将和的出现次数存入map中,On2枚举另两个数组,看是否加和为0
class Solution { public: int fourSumCount(vector<int>& A, vector<int>& B, vector<int>& C, vector<int>& D) { int na = A.size(), nb = B.size(), nc = C.size(), nd = D.size(); int cnt = 0; map<int, int> mp; for (int i = 0; i < na; i++) { for (int j = 0; j < nb; j++) { int sum = A[i] + B[j]; if (mp[-sum]) mp[-sum]++; else mp[-sum] = 1; } } for (int i = 0; i < nc; i++) { for (int j = 0; j < nd; j++) { int sum = C[i] + D[j]; if (mp[sum]) cnt += mp[sum]; } } return cnt; } };
以上是关于LeetCode || Hash的主要内容,如果未能解决你的问题,请参考以下文章
leetcode_1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold_[二维前缀和](代码片段