所以我有一个 N 大小的数组。我想首先检查数组是否是交替序列(我们假设数字是正数并且值是 1 或 0)
101010 would return true
110101 would return false
在我检查这个之后,我想知道我需要改变多少这些数字才能使它成为一个交替序列,例如:
1,1,0,1,1
会return 2
因为你可以颠倒第一个和第五个索引来实现0,1,0,1,0
目前我正在检查交替序列,如下所示:
#include <stdio.h> // For I/O operations
#include <stdbool.h> // for 'true' and 'false'
int isArrayAlternating(int ints[], size_t N) {
if (ints == NULL || sizeof(ints) % 2 != 0)
return false;
for (int i = 0; i < sizeof(ints) - 1; i++)
if (ints[i] != ints[i + 1] * (-1))
return false;
return true;
}
int main(void) {
int ints[] = {1, 0, 1, 0};
size_t N = sizeof(ints) / sizeof(ints[0]);
isArrayAlternating(ints);
return 0;
}