0%

Leetcode977-Squares of a Sorted Array

Description

Given an integer array nums sorted in non-decreasing order, return an array of the squares of each number sorted in non-decreasing order.

Example

Example 1:

1
2
3
4
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:
1
2
Input: nums = [-7,-3,2,3,11]
Output: [4,9,9,49,121]

Constraints:

  • 1 <= nums.length <= 104
  • -104 <= nums[i] <= 104
  • nums is sorted in non-decreasing order.

Solution

  • Time Complexity:
  • Space Complexity:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution {
public int[] sortedSquares(int[] A) {
if (A == null || A.length == 0) return A;
int[] res = new int[A.length];
int idx = A.length - 1;
int left = 0;
int right = A.length - 1;
while(left <= right){
if (Math.abs(A[left]) > Math.abs(A[right])){
res[idx] = A[left] * A[left];
left++;
}
else{
res[idx] = A[right] * A[right];
right--;
}
idx--;
}

return res;
}
}