## 题目
![image](8DDCBCD204144ED29EB7B0816640D0F8)
## 解题思路
对正数和负数分别进行平方,相当于对左右两个数组由减至增的排序。将两个有序数列进行合并,正是归并方法的思路
## 代码实现
```
class Solution {
public:
vector<int> sortedSquares(vector<int>& A) {
//对A中数组取平方,同时记录分界点
int j=0;
vector<int> res;
for(int i=0;i<A.size();i++){
if(A[i]<0){
j=i;
}
A[i]*=A[i];
}
int i=j+1;
//对数据进行归并
while(i<A.size()&&j>=0){
if(A[i]<=A[j]){
res.push_back(A[i]);
i++;
}else{
res.push_back(A[j]);
j--;
}
}
while(i<A.size()){
res.push_back(A[i]);
i++;
}
while(j>=0){
res.push_back(A[j]);
j--;
}
return res;
}
};
```