终于把执行时间搞到 4ms 了。代码简单易懂,不加备注了。
就说一下提高效率的点:
预分配内存空间
代码有效行的第5行: int bits[MAXN] = {0};
不清楚原理,推测是malloc的原因,注释掉则会多出4ms的执行时间。
#include <stdio.h>
#include <stdbool.h>
#define MAXN 1005
bool isOneBitCharacter(int*,int);
int bits[MAXN] = {0};
bool isOneBitCharacter(int* bits,int bitsSize)
{
int i =0;
bool n;
while(i < bitsSize)
{
if (bits[i] == 0)
{
if (i == bitsSize-1)
n = true;
i++;
}
else
{
if (i == bitsSize-2)
n = false;
i+=2;
}
}
return n;
}