九章演算法 拼多多面試題 和相同的二元子陣列

2021-10-19 14:45:24 字數 995 閱讀 9339

描述

在由若干 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 樣例...