977. 有序数组的平方
提示:
1 <= A.length <= 10000
-10000 <= A[i] <= 10000
A
已按非递减顺序排序。
排序
func sortedSquares(A []int) []int {
for i,v:=range A{
A[i] = v*v
}
sort.Ints(A)
return A
}
双指针
package main
import (
"fmt"
)
func sortedSquares(A []int) []int {
res := make([]int, len(A))
l := 0
r := len(A) - 1
i := len(res) - 1
var lRes, rRes int
for l <= r {
lRes = A[l] * A[l]
rRes = A[r] * A[r]
if lRes > rRes {
res[i] = lRes
l++
} else {
res[i] = rRes
r--
}
i--
}
return res
}
func main() {
fmt.Println(sortedSquares([]int{-4,-1,0,3,10}))
fmt.Println(sortedSquares([]int{-7, -3, 2, 3, 11}))
fmt.Println(sortedSquares([]int{1}))
}