题目:

算法思想:开辟一个同样大小的数组,从A数组两边向中间靠拢,判断哪边平方大就放入B数组,记得从后往前插入,最后处理到达同一位置的情况。
代码:
vector<int> sortedSquares(vector<int>& A) {
vector<int> B(A.size());
int i = 0,j = A.size()-1;
int index = j;
while(i != j)
{
int a = A[i]*A[i];
int b = A[j]*A[j];
if(a > b)
{
B[index] = a;
index--;
i++;
}
else
{
B[index] = b;
index--;
j--;
}
}
B[index] = A[i]*A[i];
return B;
}
本文介绍了一种特殊的排序算法,用于处理数组元素平方后的排序问题。算法思想是开辟一个同样大小的数组,从原数组两边向中间靠拢,比较两边元素的平方值,将较大的平方值从后往前插入新数组,直至处理完所有元素。

883

被折叠的 条评论
为什么被折叠?



