Go•squares-of-a-sorted-array/solution.go
package main
func sortedSquares(nums []int) []int {
result := make([]int, len(nums))
left, right := 0, len(nums)-1
for write := len(nums) - 1; write >= 0; write-- {
if absSquare(nums[left]) > absSquare(nums[right]) {
result[write] = nums[left] * nums[left]
left++
} else {
result[write] = nums[right] * nums[right]
right--
}
}
return result
}
func absSquare(value int) int {
if value < 0 {
return -value
}
return value
}
Python•squares-of-a-sorted-array/solution.py
class Solution:
def sortedSquares(self, nums: list[int]) -> list[int]:
result = [class="syntax-number">0] * len(nums); left, right = class="syntax-number">0, len(nums) - class="syntax-number">1
for write in range(len(nums) - class="syntax-number">1, -class="syntax-number">1, -class="syntax-number">1):
if abs(nums[left]) > abs(nums[right]): result[write], left = nums[left] ** class="syntax-number">2, left + class="syntax-number">1
else: result[write], right = nums[right] ** class="syntax-number">2, right - class="syntax-number">1
return result
TypeScript•squares-of-a-sorted-array/solution.ts
function sortedSquares(nums: number[]): number[] {
const result = new Array<number>(nums.length);
let left = class="syntax-number">0; let right = nums.length - class="syntax-number">1;
for (let write = nums.length - class="syntax-number">1; write >= class="syntax-number">0; write -= class="syntax-number">1) { if (Math.abs(nums[left]) > Math.abs(nums[right])) { result[write] = nums[left] ** class="syntax-number">2; left += class="syntax-number">1; } else { result[write] = nums[right] ** class="syntax-number">2; right -= class="syntax-number">1; } }
return result;
}