跳到主要内容

977.有序数组的平方

链接:977.有序数组的平方
难度:Easy
标签:数组、双指针、排序
简介:给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。

题解 1 - typescript

  • 编辑时间:2020-10-16
  • 执行用时:208ms
  • 内存消耗:45.7MB
  • 编程语言:typescript
  • 解法介绍:平方后排序。
function sortedSquares(A: number[]): number[] {
return A.map(v => v ** 2).sort((a, b) => a - b);
}

题解 2 - typescript

  • 编辑时间:2020-10-16
  • 执行用时:204ms
  • 内存消耗:46MB
  • 编程语言:typescript
  • 解法介绍:利用有序性进行双指针遍历排序。
function sortedSquares(A: number[]): number[] {
const ans: number[] = [];
const len = A.length;
let i = 0;
let j = len - 1;
const arr = A.map(v => v ** 2);
while (i <= j) {
const numL = arr[i];
const numR = arr[j];
if (numL <= numR) {
ans.unshift(numR);
j--;
} else if (numL > numR) {
ans.unshift(numL);
i++;
}
}
return ans;
}

题解 3 - python

  • 编辑时间:2024-09-08
  • 执行用时:44ms
  • 内存消耗:18.36MB
  • 编程语言:python
  • 解法介绍:遍历。
class Solution:
def sortedSquares(self, nums: List[int]) -> List[int]:
return sorted(num ** 2 for num in nums)