就很…想了无数种办法,一道代码写一天
这是最简单的,大神的思路:
class Solution {
public:
vector<bool> prefixesDivBy5(vector<int>& A) {
vector<bool> res;
int num = 0;
for(int i=0;i< A.size();i++) {
num = ((num << 1) + A[i]) % 5;
res.push_back(num == 0);
}
return res;
}
};
我的思路:
class Solution {
public:
vector<bool> prefixesDivBy5(vector<int>& A) {
vector<bool> out;
int B[30000];
int temp;
int k = 0;
for(int i = 0;i < A.size();i++)
{
temp = 0;
for(int j = 0;j <= i;j++)
{
temp += ((A[j] << ((i-j)-16*((i-j)/16))))%10;
}
B[k] = temp;
k++;
}
for(int i = 0;i < k; i++)
out.push_back(B[i] % 5 == 0);
return out;
}
};
一直提示时间超出限制。过于复杂了。