• 给你一个按 非递减顺序 排序的整数数组 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)
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 相关阅读:
    如何构建一台机器学习服务器
    BIGEMAP GIS Office
    如果在手机没有root的情况下完成安卓手机数据恢复
    Python 文件打包成可执行文件
    深度学习进度显示神器:tqdm详解
    共同富裕-三大维度-各省份、城市、农村基尼系数-附带多种计算方法
    python函数使用
    英文转换-在线英文批量转换器免费
    ch0_OSI 七层网络协议介绍
    【c++】模拟实现优先级队列(priority_queue)
  • 原文地址:https://blog.csdn.net/m0_51919640/article/details/127975968