[leetcode]和相同的二元子陣列
阿新 • • 發佈:2018-11-24
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]
提示:
- A.length <= 30000
- 0 <= S <= A.length
- 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;
}
};