在由若干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,1,0,1]
a.length <= 30000
0 <= s <= a.length
a[i]
為0
或1
方法一:
當用陣列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 ...