1. 程式人生 > >[leetcode]和相同的二元子陣列

[leetcode]和相同的二元子陣列

930. 和相同的二元子陣列

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

提示:

  1. A.length <= 30000
  2. 0 <= S <= A.length
  3. A[i] 為 0 或 1

C++解法:

class Solution {
public:
    int numSubarraysWithSum
(vector<int>& A, int S) { int count = 0; for (size_t i = 0; i < A.size(); i++) { int sum = 0; bool flag = true; for (size_t j = i; j < A.size(); j++) { sum += A[j]; if (flag) {
if (sum == S) { ++count; flag = false; } } else { if (sum == S) { ++count; }
else { break; } } } if (sum < S) { break; } } return count; } };