1 //平方之后,列顺序 从低到高
2 vector<int> sortedSquares(vector<int>& nums)
3 {
4 vector<int> result(nums.size());
5 int resultId = nums.size() - 1;
6
7 //因为有序数组,所以他是两边最大,中间最小,所以可以 从两边往里,找出来最大的数值
8 //注意可以不加 l++ r --
9 for (int l = 0, r = nums.size() - 1; l <= r;)
10 {
11 int l_sq = nums[l] * nums[l];
12 int r_sq = nums[r] * nums[r];
13 if (l_sq > r_sq)
14 {
15 result[resultId] = l_sq;
16 l++;
17 }
18 else //如果等于的话,是社么情况
19 {
20 result[resultId] = r_sq;
21 r--;
22 }
23 resultId--;
24 }
25
26 return result;
27 }