[leetCode] 977. Squares of a Sorted Array
4251 ワード
🎆 Description
Given an integer array nums sorted in non-decreasing order,
eturn an array of the squares of each number sorted in non-decreasing order.
Example 1:
Input: nums = [-4,-1,0,3,10]
Output: [0,1,9,16,100]
Explanation: After squaring, the array becomes [16,1,0,9,100].
After sorting, it becomes [0,1,9,16,100].
Example 2:
Input: nums = [-7,-3,2,3,11]
Output: [4,9,9,49,121]
🎇 Solution
var sortedSquares = function(nums) {
let low = 0;
let high = nums.length - 1;
let output = [];
while(low <= high) {
if (nums[low]**2 > nums[high]**2) {
output.push(nums[low]**2);
low++;
} else {
output.push(nums[high]**2);
high--;
}
}
return output.reverse();
};
two pointers
どうして降順に腕立て伏せして反転しますか()
基本的に並んでいるのは最後にプッシュされているからです.
2つのポインタの値を比較することで、大数からプッシュすることで、自然に降順に並べることができます.
ただし、小数点から押す場合は、最も近い比較の小さい値を前のインデックス、最初のインデックスに入れる必要があります.
いいですが、他の方法を使わなければならないので、簡単に押して、最後に逆順に並べます.
Reference
この問題について([leetCode] 977. Squares of a Sorted Array), 我々は、より多くの情報をここで見つけました https://velog.io/@gygy/leetCode-977.-Squares-of-a-Sorted-Arrayテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol