977. 有序数组的平方
class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
vector<int> res(nums.size(), 0); // 创建一个和nums大小相同的结果数组,初始值为0
int size = nums.size() - 1; // 初始化一个指向结果数组末尾的指针
int i = 0, j = size; // 初始化两个指针i和j,分别指向nums的开始和末尾
while (i <= j) {
int a = nums[i] * nums[i]; // 计算nums[i]的平方
int b = nums[j] * nums[j]; // 计算nums[j]的平方
// 比较两个平方数的大小,并将较大的一个放在结果数组的末尾
if (a > b) {
res[size] = a; // 如果nums[i]的平方大,则将其放入结果数组
i++; // 移动指针i
} else {
res[size] = b; // 否则将nums[j]的平方放入结果数组
j--; // 移动指针j
}
size--; // 结果数组的下一个填充位置
}
return res; // 返回结果数组
}
};