2023年9月3日 星期日

[2574] Left and Right Sum Differences (TBD)

用了笨方法直接三個for  XD

int* leftRightDifference(int* nums, int numsSize, int* returnSize){
int *lSum = calloc (numsSize+1, sizeof(int));
int *rSum = calloc (numsSize+1, sizeof(int));
int *ret = calloc (numsSize, sizeof(int));
for (int i=1;i<=numsSize;i++) //0 to numsSize-2
lSum[i]=lSum[i-1]+nums[i-1];
for (int j=numsSize-1;j>=0;j--) //1 to numsSize
rSum[j]=rSum[j+1]+nums[j];
for (int i=0;i<numsSize; i++)
ret[i]= abs(lSum[i]- rSum[i+1]);

*returnSize = numsSize;
return ret;
}

然後原來可以兩個解決?!就是left Sum 其實可以用 total sum去減right sum 反推回來。
所以推完這個就可以兩者相減了,填入output。這個(改進)之後再寫好了 XD


沒有留言:

張貼留言