描述
在由若干 0 和 1 組成的陣列 a 中,有多少個和為 s 的非空子陣列。
lintcode 領扣
樣例1
input: a = [1,0,1,0,1], s = 2
output: 4
explanation:
the 4 subarrays are bolded below:
[1,0,1]
[1,0,1]
[1,0,1,0]
[0,1,0,1]
樣例2
input: a = [0,0,0,0,0,0,1,0,0,0], s = 0
output: 27
explanation:
and 27 subarrays for s.
題解
字首和:定義乙個陣列sumn+1,si表示陣列a中前i個元素之和,然後遍歷sum陣列,計算si+s(含義:前i個元素之和是si,找和為s的子陣列個數)。求si+s的個數
public
class
solution
intprefixsum=0
;int
res=0;
// counts[i] means the number of prefixsum = i int
counts
=new
int[a.
length+1
];counts[0
]=1;
for(
inti=0
;ilength;i
++)counts
[prefixsum
]++;
}return
res;
}}
更多題解參考:九章演算法
九章演算法 拼多多面試題 單詞接龍 II
描述 給出兩個單詞 start和end 和乙個字典,找出所有從start到end的最短轉換序列。變換規則如下 每次只能改變乙個字母。變換過程中的中間單詞必須在字典 現。樣例1 輸入 start a end c dict a b c 輸出 a c 解釋 a c 樣例2 輸入 start hit end...
九章演算法 Google面試題 內積
描述 給定長度為n的a陣列,長度為k的b陣列 你可以從a陣列裡取k個數 規則如下 即每次可以從a陣列的最左邊或者最右邊取走乙個數,取走的數從陣列中移除 將取出的ai按取出的順序組成c陣列 求b與c的內積最大值 b與c內積為 i 0k 1bi ci 解釋1 a 1,4,3,2,5 b 1,2,3,4 ...
九章演算法 騰訊面試題 和相同的二元子陣列
描述 在由若干 0 和 1 組成的陣列 a 中,有多少個和為 s 的非空子陣列。樣例1 input a 1,0,1,0,1 s 2 output 4 explanation the 4 subarrays are bolded below 1,0,1 1,0,1 1,0,1,0 0,1,0,1 樣例...