// // Created by xfj12 on 2025/3/25. // #include #include #include int findMinElement(int *nums, int numsSize, int *returnIndex) { int min = nums[0]; *returnIndex = 0; for (int i = 1; i < numsSize; ++i) { if (nums[i] < min) { min = nums[i]; *returnIndex = i; } } return min; } void removeElement(int *nums, int numsSize, int idx) { for (int i = idx; i < numsSize - 1; ++i) nums[i] = nums[i + 1]; } int *numberGame(int *nums, int numsSize, int *returnSize) { int *result = malloc(sizeof(int) * numsSize); *returnSize = 0; while (numsSize > 0) { int aliceIndex; const int alice = findMinElement(nums, numsSize, &aliceIndex); removeElement(nums, numsSize--, aliceIndex); int bobIndex; const int bob = findMinElement(nums, numsSize, &bobIndex); removeElement(nums, numsSize--, bobIndex); result[(*returnSize)++] = bob; result[(*returnSize)++] = alice; } for (int i = 0; i < numsSize; ++i) printf("%d ", result[i]); return result; }