每日刷题-977. 有序数组的平方

106 阅读1分钟

977. 有序数组的平方

常规 1

func sortedSquares(_ nums: [Int]) -> [Int] {
    var squaed: [Int] = []
    for num in nums {
        squaed.append(num * num)
    }
    squaed.sort()
    return squaed
}

双指针

func sortedSquares(_ nums: [Int]) -> [Int] {
    var n = nums.count - 1
    var squaed = Array<Int>(repeating: -1, count: nums.count)
    var j = nums.count - 1
    var i = 0
    for _ in 0..< nums.count{
        if nums[i] * nums[i ] < nums[j] * nums[j] {
            squaed[n] = nums[j] * nums[j]
            j -= 1
        } else {
            squaed[n] = nums[i] * nums[i]
            i += 1
        }
        n -= 1
    }
    return squaed

}