leetcode454. 四数相加 II(思路+详解)
生活随笔
收集整理的這篇文章主要介紹了
leetcode454. 四数相加 II(思路+详解)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一:題目
二:上碼
class Solution { public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {/**思路:1.我們用map容器的key值存進(jìn)去前兩個(gè)數(shù)的和并記錄其個(gè)數(shù),然后在后面兩個(gè)數(shù)組找其相反數(shù),這樣一相加和就為0,**/unordered_map<int,int>m;//我們采用其主要是因?yàn)槠洳檎倚矢?#xff0c;底層實(shí)現(xiàn)是用的哈希表實(shí)現(xiàn)的for(int a :nums1) {//此為增強(qiáng)版的for循環(huán)for(int b:nums2) {m[a+b]++;//這里我們統(tǒng)計(jì)其個(gè)數(shù),是因?yàn)闀霈F(xiàn) 和相同的數(shù) 但其下標(biāo)不同或則所在的數(shù)組不同//我們最終是想實(shí)現(xiàn)統(tǒng)計(jì)的和為0的個(gè)數(shù),所以重復(fù)的也得統(tǒng)計(jì)}}int count = 0;for(int c: nums3) {for(int d: nums4) {if(m.find(0-(c+d)) != m.end()){//c+d是個(gè)負(fù)數(shù)count += m[0-(c+d)];//a+b 有count個(gè)數(shù),那么只要有一個(gè)c+d = -(a+b),//那么我們就count個(gè)組可以實(shí)現(xiàn)和0}}}return count;} };
打卡下班啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦哈哈哈哈哈哈哈哈哈 哈哈哈哈哈 加油陌生的你
總結(jié)
以上是生活随笔為你收集整理的leetcode454. 四数相加 II(思路+详解)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 钉钉怎么设置考勤打卡范围100米之内
- 下一篇: leetcode383. 赎金信(两种做