仅仅记录下,自己写的过程,不是最好,仅供参考,哈哈哈
class Solution {
public:
vector<int> sortedSquares(vector<int>& A) {
vector<int> B;
vector<int> C;
vector<int> D;
size_t size = A.size();
for (int i = 0; i < size; i++) {
if (A[i] < 0) {
B.push_back(A[i] * A[i]);
}
else {
C.push_back(A[i] * A[i]);
}
}
size_t b_size = B.size(), c_size = C.size();
int b = b_size - 1, c = 0;
while (c < c_size && b >= 0) {
if (B[b] > C[c]) {
D.push_back(C[c]);
c++;
}
else {
if (B[b] < C[c]) {
D.push_back(B[b]);
b--;
}
else {
D.push_back(B[b]);
D.push_back(C[c]);
c++;
b--;
}
}
}
if (c == c_size) {
if (b != -1) {
for (int i = b; i >= 0; i--) {
D.push_back(B[i]);
}
}
}
else {
for (int i = c; i < c_size; i++) {
D.push_back(C[i]);
}
}
return D;
}
};