2024年7月24日 星期三

[1013] Partition Array Into Three Parts With Equal Sum

覺得寫的有點醜Orz 以為有什麼厲害的解法但好像還好?!
不LIKE, 不想多研究Orz 下一題!

bool canThreePartsEqualSum(int* arr, int arrSize) {
int *preSum = calloc(arrSize, sizeof(int));
preSum[0]= arr[0];
for (int i=1; i<arrSize; i++)
preSum[i]= preSum[i-1]+arr[i];

int sum = preSum[arrSize-1];
if (sum%3 != 0)
return false;
int target = sum/3;
for (int i=0; i<arrSize; i++)
{
if (preSum[i]== target)
{
for (int j=i+1;j<arrSize-1;j++)
if (preSum[j]== target*2)
return true;
}
}
return false;

}

沒有留言:

張貼留言