class Solution {
public:
vector<int> sortedSquares(vector<int>& A)
{
int size = A.size();
int i = 0, j = 0;
vector<int> ret, temp;
for (int num: A)
{
temp.emplace_back(num * num);
}
int abs_min = temp[0], abs_min_index = 0;
for(i = 1; i < size; i++)
{
if(temp[i] > abs_min)
break;
if(temp[i] < abs_min)
{
abs_min = temp[i];
abs_min_index = i;
}
}
i = abs_min_index - 1;
j = abs_min_index + 1;
ret.emplace_back(temp[abs_min_index]);
while(i >= 0 && j < size)
{
if(temp[i] >= temp[j])
{
ret.emplace_back(temp[j]);
j++;
}
else
{
ret.emplace_back(temp[i]);
i--;
}
}
while(i >= 0)
{
ret.emplace_back(temp[i]);
i--;
}
while(j < size)
{
ret.emplace_back(temp[j]);
j++;
}
return ret;
}
};
Leetcode 977. 有序数组的平方
最新推荐文章于 2024-11-12 21:59:57 发布