LeetCode 930 和相同的二元子陣列

2021-09-02 18:52:22 字數 917 閱讀 4282

在由若干01組成的陣列a中,有多少個和為s非空子陣列。

示例:

輸入:a = [1,0,1,0,1], s = 2

輸出:4

解釋:如下面黑體所示,有 4 個滿足題目要求的子陣列:

[1,0,1,0,1]

[1,0,1,0,1]

[1,0,1,0,1]

[1,0,1,0,1]

a.length <= 300000 <= s <= a.lengtha[i]01

方法一:

當用陣列sum記錄,sum[i]=a[i-1]+a[i-2]…a[0],sum[0]=0;則存在sum[j]-sum[i]=s,則a的下標[i,j-1]為其中的乙個解。

用map的key記錄key=a[i]+a[i-1]…a[0],再用value記錄key值出現的次數。

時間複雜度:o(n)。

class solution });

int psum = 0, res = 0;

for (int i : a)

return res;

}};

方法二:

用陣列記錄1出現的位置。 然後在遍歷記錄陣列計數個數。

時間複雜度o(n);

class solution }}

} return num;

}};

930 和相同的二元子陣列

weekly contest 108的第二題 和相同的二元子陣列 在由若干0和1組成的陣列a中,有多少個和為s的非空子陣列。示例 輸入 a 1,0,1,0,1 s 2 輸出 4 解釋 如下面黑體所示,有 4 個滿足題目要求的子陣列 1,0,1,0,1 1,0,1,0,1 1,0,1,0,1 1,0,...

leetcode 相同的樹

給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。示例 1 輸入 1 1 2 3 2 3 1,2,3 1,2,3 輸出 true示例 2 輸入 1 1 2 2 1,2 1,null,2 輸出 false示例 3 輸入 1 1 2 1 1...

LeetCode 之相同的樹

問題描述 給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。示例 1 輸入 1 1 2 3 2 3 1,2,3 1,2,3 輸出 true示例 2 輸入 1 1 2 2 1,2 1,null,2 輸出 false示例 3 輸入 1 1 ...