func sortedSquares(nums []int) []int {
left := 0
right := len(nums)-1
k := len(nums)-1
var value = make([]int,len(nums))
for left <= right {
if nums[left] * nums[left] < nums[right] * nums[right] {
value[k] = nums[right] * nums[right]
k--
right--
} else {
value[k] = nums[left] * nums[left]
k--
left++
}
}
return value
}
定义一个新数组result,和A数组一样的大小,让k指向result数组终止位置。
如果A[i] * A[i] < A[j] * A[j]
那么result[k--] = A[j] * A[j];
。
如果A[i] * A[i] >= A[j] * A[j]
那么result[k--] = A[i] * A[i];
。