兩次過 Lintcode 976 4數和 II

2021-08-21 06:59:52 字數 905 閱讀 5528

給出 a, b, c, d 四個整數列表,計算有多少的tuple(i, j, k, l)滿足a[i] + b[j] + c[k] + d[l]為 0。

為了簡化問題,a, b, c, d 具有相同的長度,且長度n滿足 0 ≤ n ≤ 500。所有的整數都在範圍(-2^28, 2^28 - 1)內以及保證結果最多為2^31 - 1。

例1:

輸入:

a = [ 1, 2]

b = [-2,-1]

c = [-1, 2]

d = [ 0, 2]

輸出:2

解釋:這兩個tuple為:

1. (0, 0, 0, 1) -> a[0] + b[0] + c[0] + d[1] = 1 + (-2) + (-1) + 2 = 0

2. (1, 1, 0, 0) -> a[1] + b[1] + c[0] + d[0] = 2 + (-1) + (-1) + 0 = 0

例2:

輸入:

a = [0]

b = [0]

c = [0]

d = [0]

輸出:1

如果是暴力解法,時間複雜度為o(n^4),空間複雜度為o(1),明顯不可行。

如果是遍歷a,b,c,將d放入雜湊表中查詢,時間複雜度為o(n^3),空間複雜度為o(n),還有優化餘地。

如果是遍歷a,b,將c+d的結果放入雜湊表中,時間複雜度為o(n^2),空間複雜度為o(n^2),可行。

public class solution 

}int res = 0;

for(int i=0; i}

return res;

}}

兩次過 Lintcode 56 兩數之和

給乙個整數陣列,找到兩個數使得他們的和等於乙個給定的數 target。你需要實現的函式twosum需要返回這兩個數的下標,並且第乙個下標小於第二個下標。注意這裡下標的範圍是 0 到 n 1。example1 給出 numbers 2,7,11,15 target 9,返回 0,1 example2 ...

兩次過 Lintcode 1209 構造矩形

對於乙個web開發者,如何設計頁面大小很重要。所以,給定乙個矩形大小,設計其長 l 寬 w 使其滿足如下要求 1.矩形區域大小需要和給定目標相等。2.寬度w不大於長度l,也即l w.3.長和寬的差異盡可能的小。返回設計好的長度l和寬度w。樣例 輸入 4 輸出 2,2 解釋 目標區域是4,所有可能的構...

兩次過 Lintcode 212 空格替換

設計一種方法,將乙個字串中的所有空格替換成 20。你可以假設該字串有足夠的空間來加入新的字元,且你得到的是 真實的 字元長度。你的程式還需要返回被替換後的字串的長度。對於字串 mr john smith 長度為13 替換空格之後,引數中的字串需要變為 mr 20john 20smith 並且把新長度...