2022年10月30日 星期日

[1480] Running Sum of 1d Array

什麼原來可以蓋掉原本的array直接回傳就好了嗎!

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* runningSum(int* nums, int numsSize, int* returnSize){
    int runSum=0;
    int* returnArray = malloc(sizeof(int)*numsSize);
    *returnSize = numsSize;
    for(int i=0;i<numsSize; i++)
    {
        runSum+=nums[i];
        returnArray[i]=runSum;
    }
    
    return returnArray;
}

精簡以後變這樣 : 
/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* runningSum(int* nums, int numsSize, int* returnSize){
    *returnSize = numsSize;
    for(int i=1;i<numsSize; i++)
        nums[i]=nums[i-1]+nums[i];
    
    return nums;
}
但是速度反而變慢了是怎麼回事XD~ 奇怪OrzL

沒有留言:

張貼留言