2022年11月19日 星期六

[1403] Minimum Subsequence in Non-Increasing Order

感覺又多了贅步了!!!但我有點不懂為什麼XD~~~~(抱頭)
先這樣子吧...(真的可以這樣嗎XD)
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int comp(const void *a, const void *b)
{
return *(int *)a- *(int *)b;
}

int* minSubsequence(int* nums, int numsSize, int* returnSize){
qsort((void *)nums, numsSize, sizeof(int),comp);
int* left=calloc (numsSize,sizeof(int));
int sum=0;
for (int i=0;i<numsSize;i++)
{
sum+=nums[i];
left[i]=sum;
}
int stopIndex=numsSize-1;
for (int i=numsSize-1; i>0;i-- )
{
if ((i-1) ==0)
stopIndex=0;
if ((sum-left[i-1]>left[i-1]))
{
stopIndex=i;
break;
}
}
#if 0
int* ret=realloc(left, sizeof(int)*(numsSize-stopIndex));
#else
int* ret=malloc(sizeof(int)*(numsSize-stopIndex));
#endif
for (int i=numsSize-1,j=0;i>=stopIndex;i--,j++)
ret[j]=nums[i];
*returnSize = (numsSize-stopIndex);
return ret;
}

沒有留言:

張貼留言