1.给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。
示例 1:
输入:[-4,-1,0,3,10]
输出:[0,1,9,16,100]
示例 2:
输入:[-7,-3,2,3,11]
输出:[4,9,9,49,121]
提示:
1 <= A.length <= 10000
-10000 <= A[i] <= 10000
A 已按非递减顺序排序。
2.代码展示
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
void sort(int* A, int ASize)
{
for (int i=0; i<ASize; i++)
{ int flag = 0;
for (int j=1; j<=ASize-1-i; j++)
{
if (A[j-1]>A[j])
{ flag = 1;
int tmp= A[j-1];
A[j-1] =A[j];
A[j] = tmp;
}
}
if(flag == 0)
{
break;
}
}
}
int* sortedSquares(int* A, int ASize, int* returnSize)
{
*returnSize =ASize;
for(int i=0; i<ASize; i++)
{
A[i] *=A[i];
}
sort(A,ASize);
return A;
}
3.先直接遍历,求出平方,然后冒泡排序整个数组。