学习时间:
2023年1月25日
题目描述:

题解分享:
// 作 者 : 繁 华 倾 夏
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
// 力扣(LeetCode):977. 有序数组的平方
/**
* Note: The returned array must be malloced, assume caller calls free().
* 注意:返回的数组必须定位错误,假设调用方调用 free()。
*/
// qsort排序函数接口
int compare(const void* left, const void* right)//left,right 是任意两个元素的地址值
{
return *(int*)left - *(int*)right;// 从小到大排序
}
// nums:数组 numsSize:数组长度 returnSize:返回新数组的容量
int* sortedSquares(int* nums, int numsSize, int* returnSize) {
*returnSize = numsSize; // 新数组容量与原数组容量一致
int* ss = (int*)malloc(sizeof(int) * numsSize); // 建立动态数组
for (int i = 0; i < numsSize; i++) {
ss[i] = nums[i] * nums[i]; // 将数组中每个元素平方
}
qsort(ss, numsSize, sizeof(int), compare); //qsort 实现的是快排
return ss;
}
// 测试用例
// 输入 nums = [-4, -1, 0, 3, 10]
// 输出 [0, 1, 9, 16, 100]
int main() {
int nums[] = { -4,-1,0,3,10 };
int numsSize = sizeof(nums) / sizeof(nums[0]);
int returnSize;
int* re = nums;
re = sortedSquares(nums, numsSize, &returnSize);
for (int i = 0; i < returnSize; i++) {
printf("%d ", re[i]);
}
return 0;
}
【繁华倾夏】【每日力扣题解分享】【Day11】