Skip to content

Commit 70d67e8

Browse files
Merge pull request youngyangyang04#1610 from hua-qi/master
0977.有序数组的平方-typescript版本-优化写法
2 parents 5dd5e72 + d91233d commit 70d67e8

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

problems/0977.有序数组的平方.md

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -239,18 +239,24 @@ Typescript:
239239

240240
```typescript
241241
function sortedSquares(nums: number[]): number[] {
242-
let left: number = 0, right: number = nums.length - 1;
243-
let resArr: number[] = new Array(nums.length);
244-
let resArrIndex: number = resArr.length - 1;
242+
const ans: number[] = [];
243+
let left = 0,
244+
right = nums.length - 1;
245+
245246
while (left <= right) {
246-
if (Math.abs(nums[left]) < Math.abs(nums[right])) {
247-
resArr[resArrIndex] = nums[right--] ** 2;
247+
// 右侧的元素不需要取绝对值,nums 为非递减排序的整数数组
248+
// 在同为负数的情况下,左侧的平方值一定大于右侧的平方值
249+
if (Math.abs(nums[left]) > nums[right]) {
250+
// 使用 Array.prototype.unshift() 直接在数组的首项插入当前最大值
251+
ans.unshift(nums[left] ** 2);
252+
left++;
248253
} else {
249-
resArr[resArrIndex] = nums[left++] ** 2;
254+
ans.unshift(nums[right] ** 2);
255+
right--;
250256
}
251-
resArrIndex--;
252257
}
253-
return resArr;
258+
259+
return ans;
254260
};
255261
```
256262

0 commit comments

Comments
 (0)