bool* prefixesDivBy5(int* A, int ASize, int* returnSize) {
if(A == NULL) return;
int i;
*returnSize = ASize;
bool* answer = malloc(sizeof(bool) * ASize);
int prefix = 0;
//对A中子集遍历,看书否能够整除5
for (i = 0; i < ASize; i++) {
prefix = ((prefix * 2) + A[i]) % 5;
answer[i] = prefix == 0;
prefix %= 10; //减少位数以简化计算
}
return answer;
}
力扣1018.5整除的二进制前缀
最新推荐文章于 2023-04-20 18:53:47 发布