楼主:
sixB (6B)
2025-02-25 23:25:371524.
今天这题我觉得蛮好玩的:3
subarray ㄧ格一格dp加起来
原本以为是要求subset
还在想哪边要加mod 超麻烦==
在那边算数学
class Solution {
public:
int numOfSubarrays(vector<int>& arr) {
int mod = 1e9 + 7;
int even = 0, odd = 0, res = 0;
for(int& i: arr){
if(i%2 == 1){ // i odd
swap(odd, even);
odd++;
}
else even++;
// mod
res += odd;
res %= mod;
}
return res;
}
int numOfSubsets(vector<int>& arr) {
int even = 0, odd = 0;
for(int& i: arr){
if(i%2) odd++;
else even++;
}
// count all subset odd
int oddset = pow(2, odd-1); //odd number
int evenset = pow(2, even); //all
int res = oddset * evenset;
return res;
}
};
取奇数或偶数个都是2^n-1欸
还跑去找证明
好崇拜这些数学好的人
我也想把数学学好