977. 有序数组的平方

leetcode链接:
https://leetcode.cn/problems/squares-of-a-sorted-array/description/

方案一

暴力求解:先平方,在排序。

1
2
3
4
5
for (int i = 0; i < nums.length; i++)
nums[i] = nums[i] * nums[i];

Arrays.sort(nums);
return nums;

结果

  • 137/137 cases passed (5 ms)
  • Your runtime beats 27.58 % of java submissions
  • Your memory usage beats 38.1 % of java submissions (43.3 MB)

方案二

双指针

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int left = 0, 
right = nums.length -1,
length = nums.length - 1;

int[] result = new int[nums.length];

while (left <= right) {
if (nums[left] * nums[left] > nums[right] * nums[right]) {
result[length--] = nums[left] * nums[left];
left++;
} else {
result[length--] = nums[right] * nums[right];
right--;
}
}

return result;

结果

  • 137/137 cases passed (1 ms)
  • Your runtime beats 100 % of java submissions
  • Your memory usage beats 12.04 % of java submissions (43.5 MB)

代码随想录

https://programmercarl.com/0977.%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E7%9A%84%E5%B9%B3%E6%96%B9.html

官方题解

https://leetcode.cn/problems/squares-of-a-sorted-array/solution/you-xu-shu-zu-de-ping-fang-by-leetcode-solution/


977. 有序数组的平方
http://yuanql.top/2023/04/04/02_leetcode/977. 有序数组的平方/
作者
Qingli Yuan
发布于
2023年4月4日
许可协议