[HAI] week3 two optimize solution remove reverse
https://leetcode.com/problems/squares-of-a-sorted-array/main
parent
35c77a3a23
commit
8dcb175459
@ -1,20 +1,39 @@
|
||||
// export function sortedSquares(nums: number[]): number[] {
|
||||
// const result: number[] = [];
|
||||
// let L = 0;
|
||||
// let R = nums.length - 1;
|
||||
|
||||
// while (result.length !== nums.length) {
|
||||
// let leftValue = Math.pow(nums[L], 2);
|
||||
// let rightValue = Math.pow(nums[R], 2);
|
||||
|
||||
// if (leftValue > rightValue) {
|
||||
// result.push(leftValue);
|
||||
// L++;
|
||||
// } else {
|
||||
// result.push(rightValue);
|
||||
// R--
|
||||
// }
|
||||
// }
|
||||
|
||||
// return result.reverse();
|
||||
// };
|
||||
|
||||
export function sortedSquares(nums: number[]): number[] {
|
||||
const result: number[] = [];
|
||||
const result: number[] = Array(nums.length).fill(0);
|
||||
let L = 0;
|
||||
let R = nums.length - 1;
|
||||
let indexResult = result.length - 1;
|
||||
|
||||
while (result.length !== nums.length) {
|
||||
while (L <= R) {
|
||||
let leftValue = Math.pow(nums[L], 2);
|
||||
let rightValue = Math.pow(nums[R], 2);
|
||||
let resultValue = leftValue > rightValue ? leftValue : rightValue;
|
||||
leftValue > rightValue ? L++ : R--;
|
||||
|
||||
if (leftValue > rightValue) {
|
||||
result.push(leftValue);
|
||||
L++;
|
||||
} else {
|
||||
result.push(rightValue);
|
||||
R--
|
||||
}
|
||||
result[indexResult] = resultValue;
|
||||
indexResult--;
|
||||
}
|
||||
|
||||
return result.reverse();
|
||||
return result;
|
||||
};
|
||||
|
||||
Loading…
Reference in New Issue