• 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。


    示例 1:

    输入:nums = [-4,-1,0,3,10]
    输出:[0,1,9,16,100]
    解释:平方后,数组变为 [16,1,0,9,100]
    排序后,数组变为 [0,1,9,16,100]
    示例 2:

    输入:nums = [-7,-3,2,3,11]
    输出:[4,9,9,49,121]
     

    提示:

    1 <= nums.length <= 104
    -104 <= nums[i] <= 104
    nums 已按 非递减顺序 排序
     

    进阶:

    请你设计时间复杂度为 O(n) 的算法解决本问题

    来源:力扣(LeetCode)
    链接:https://leetcode.cn/problems/squares-of-a-sorted-array
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    python代码中

    class Solution:
        def sortedSquares(self, nums: List[int]) -> List[int]:
            return sorted(num * num for num in nums)

    将列表中的所有元素都平方,然后进行排序

    class Solution:

        def sortedSquares(self, nums: List[int]) -> List[int]:

            list = [] 

            # list = sorted(nums)

            list = [num * num for num in nums]

            return sorted(list)

    双指针中python代码

    class Solution:
        def sortedSquares(self, nums: List[int]) -> List[int]:
            n = len(nums)
            negative = -1
            for i, num in enumerate(nums):
                if num < 0:
                    negative = i
                else:
                    break

            ans = list()
            i, j = negative, negative + 1
            while i >= 0 or j < n:
                if i < 0:
                    ans.append(nums[j] * nums[j])
                    j += 1
                elif j == n:
                    ans.append(nums[i] * nums[i])
                    i -= 1
                elif nums[i] * nums[i] < nums[j] * nums[j]:
                    ans.append(nums[i] * nums[i])
                    i -= 1
                else:
                    ans.append(nums[j] * nums[j])
                    j += 1

            return ans

    作者:LeetCode-Solution
    链接:https://leetcode.cn/problems/squares-of-a-sorted-array/solution/you-xu-shu-zu-de-ping-fang-by-leetcode-solution/
    来源:力扣(LeetCode)
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 相关阅读:
    【阿旭机器学习实战】【12】决策树基本原理及其构造与使用方法
    JS高级 之 深拷贝 && 浅拷贝
    简述防抖与节流,必懂(含完整模拟实例)
    CMake的学习
    《工程伦理》1-13章汇总
    Nginx学习笔记06——Nginx反向代理
    Spring动态代理源码分析
    MySQL大量脏数据,如何只保留最新的一条?
    为什么我们从 Python 切换到 Go
    git clone避坑的万能步骤
  • 原文地址:https://blog.csdn.net/m0_51919640/article/details/127975968