2023年7月16日 星期日

[228] Summary Ranges

感覺怎麼寫都醜的一題XD
但是不管啦~~~~~
維持語感的easy 題目,完畢XD
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
char ** summaryRanges(int* nums, int numsSize, int* returnSize){
int outLen=0;
char **ret = malloc(sizeof(char *)*numsSize);
int start=-1,end=-1;
for (int i=0; i< numsSize; i++)
{
start = i;
if (i < numsSize-1)
{
while (nums[i]==nums[i+1]-1)
{
i++;
if (i+1 == numsSize)
break;
}
}
end = i;
ret[outLen]=malloc (sizeof(char)*32);
if (start==end)
sprintf(ret[outLen], "%d", nums[start]);
else
sprintf(ret[outLen], "%d->%d", nums[start], nums[end]);
outLen++;
}
*returnSize = outLen;
return ret;
}

沒有留言:

張貼留言