
做题时思路:
int* sortedSquares(int* nums, int numsSize, int* returnSize){
*returnSize = numsSize;
int i = 0;
for(i = 0;i < numsSize;i++) {
nums[i] = nums[i]*nums[i];
}
bubble_sort(nums, numsSize);
return nums;
}
void bubble_sort(int* nums, int numsSize) {
int i = 0;
int j = 0;
for(i = 0;i < numsSize;i++) {
for(j = 0;j<numsSize-i-1;j++) {
if(nums[j+1] < nums[j]) {
int temp = nums[j+1];
nums[j+1] = nums[j];
nums[j] = temp;
}
}
}
}

官方思路:双指针求解
int* sortedSquares(int* nums, int numsSize, int* returnSize){
int* arr = (int*)malloc(numsSize*sizeof(int));
int front = 0;
int rear = numsSize-1;
*returnSize = numsSize;
int k = numsSize-1;
int frontSquare = 0;
int rearSquare = 0;
for(k = numsSize-1;k>=0;k--) {
frontSquare = nums[front]*nums[front];
rearSquare = nums[rear]*nums[rear];
if(frontSquare > rearSquare) {
arr[k] = frontSquare;
front++;
} else {
arr[k] = rearSquare;
rear--;
}
}
return arr;
}
