代码
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* sequentialDigits(int low, int high, int* returnSize){
int possible[36] = {12, 23, 34, 45, 56, 67, 78, 89,
123, 234, 345, 456, 567, 678, 789,
1234, 2345, 3456, 4567, 5678, 6789,
12345, 23456, 34567, 45678, 56789,
123456, 234567, 345678, 456789,
1234567, 2345678, 3456789,
12345678, 23456789,
123456789};
int *answer = (int*)malloc(sizeof(int) * 36);
int count = 0;
for(int i=0;i<36;i++)
{
if(possible[i]>=low&&possible[i]<=high)
{
answer[count++] = possible[i];
}
}
*returnSize = count;
return answer;
}
思路
一开始是想着+11、+111这样推出,其实很麻烦。但题目有输入数据范围,其实可以枚举。。。不过比较慢。
遇到问题
注意是闭区间。通过率总是因为粗心而下降。