admin管理员组文章数量:1487745
【刷题】Day3
【. - 力扣(LeetCode)】
【思路】
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
void Bubble_sort(int arr[], int size) {
int temp;
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int* findErrorNums(int* nums, int numsSize, int* returnSize) {
Bubble_sort(nums, numsSize);
int* result = (int*)malloc(sizeof(int) * 2);
int duplicate = 0, missing = 0;
// 查找重复的数字
for (int i = 0; i < numsSize - 1; i++) {
if (nums[i] == nums[i + 1]) {
duplicate = nums[i];
break;
}
}
// 计算总和
int expectedSum = (numsSize * (numsSize + 1)) / 2;
int actualSum = 0;
for (int i = 0; i < numsSize; i++) {
actualSum += nums[i];
}
// 通过公式计算丢失的数字
missing = expectedSum - (actualSum - duplicate);
result[0] = duplicate; // 重复的数字
result[1] = missing; // 丢失的数字
*returnSize = 2;
return result;
}
【注意】:返回的 result 得是 malloc 开辟的一块空间,同时 *returnSize 等于 result 里面有效数据的个数。
【总结】:菜了,想不到公式法算缺失的数据。
继续干!
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-09-14,如有侵权请联系 cloudcommunity@tencent 删除数据intmallocsize集合本文标签: 刷题Day3
版权声明:本文标题:【刷题】Day3 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/shuma/1754689577a3177382.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论