LeetCode454 四數相加 II

2022-06-08 21:33:12 字數 638 閱讀 1413

給定四個包含整數的陣列列表 a , b , c , d ,計算有多少個元組 (i, j, k, l) ,使得 a[i] + b[j] + c[k] + d[l] = 0。

關鍵是如何想到用map,怎麼用map?本題目和三數之和、四數之和題目有本質的區別,本題是經典雜湊,

而那兩道題目是雙指標加去重。因為本題實際就是看有多少種滿足條件的陣列索引組合,和兩數之和返回

索引拿到題目用到的知識一樣,用map。怎麼用?也就是key-value應該儲存什麼?這就是本題目的重點。

key存放a和b兩陣列元素之和,value存放這個和出現的次數。然後查詢這些中有沒有等於-(c+d)的——經典

map查詢find。。。。

1

class

solution

14return

count;15}

16 };

我為什麼說這題和兩數之和那道題異曲同工?發現這題的突破點還是將4個數拆成兩組,最後回歸到找

map中是否有另乙個數。這難道不就是推廣了的兩數之和嗎!!!四個數看成兩個數,這道題目就是兩

數之和問題,如此破題!

自己還是新手刷的少,開始沒思路!以後要經典題目反覆刷,就像老唐說的,重點不是做了多少題,而

是做了多少總結!

leetCode 454 四數相加

目錄 一 題目描述 二 解題思路 三 實現 給定四個包含整數的陣列列表 a b c d 計算有多少個元組 i,j,k,l 使得 a i b j c k d l 0。為了使問題簡單化,所有的 a,b,c,d 具有相同的長度 n,且 0 n 500 所有整數的範圍在 例如 輸入 a 1,2 b 2,1 ...

leetcode454 四數相加 II

class solution def foursumcount self,a,b,c,d type a list int type b list int type c list int type d list int rtype int 如果暴力做法就會是o n 4 且 0 n 500 那麼6250...

leetcode454 四數相加 II

給定四個包含整數的陣列列表 a b c d 計算有多少個元組 i,j,k,l 使得a i b j c k d l 0。為了使問題簡單化,所有的 a,b,c,d 具有相同的長度 n,且 0 n 500 所有整數的範圍在 228 到 228 1 之間,最終結果不會超過 231 1 例如 輸入 a 1,2...