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

2021-10-19 14:45:24 字數 912 閱讀 8898

描述

在由若干 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]

樣例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 

int prefixsum = 0;

int res = 0;

// counts[i] means the number of prefixsum = i

int counts = new int[a.length + 1];

counts[0] = 1;

for (int i = 0; i < a.length; i++)

counts[prefixsum]++;

}return res;

}}

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

描述 在由若干 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,...

九章演算法 騰訊面試題 四數之和

給乙個包含n個數的整數陣列s,在s中找到所有使得和為給定整數target的四元組 a,b,c,d 四元組 a,b,c,d 中,需要滿足a b c d 答案中不可以包含重複的四元組。lintcode 領扣輸入 2,7,11,15 3 輸出 輸入 1,0,1,0,2,2 0 輸出 1,0,0,1 2,1...

九章演算法 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 ...