【leetcode】977. 有序数组的平方

有序数组的平方

    • 题目
    • 代码
      • [1. 使用sorted](#1. 使用sorted)
      • [2. 双指针](#2. 双指针)

题目

977. 有序数组的平方

给你一个按 非递减顺序 排序的整数数组 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. 使用sorted

直接平方,使用sorted

python 复制代码
class Solution(object):
    def sortedSquares(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        # 数组元素只能覆盖
        for i in range(len(nums)):
            nums[i] = nums[i] * nums[i]
        return sorted(nums)
        

2. 双指针

思路: 非递减顺序:才能使用双指针

判断左右两边的平方,将大的平方放在右边,右边的指针-1

python 复制代码
class Solution(object):
    def sortedSquares(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        # 非递减顺序:才能使用双指针
        left = 0
        right = len(nums) - 1
        result = [0] * len(nums)
        pos = len(nums) - 1
        while left <= right:
            if nums[left] * nums[left] < nums[right] * nums[right]:
                result[pos] = nums[right] * nums[right]
                right -= 1
            else:
                result[pos] = nums[left] * nums[left]
                left += 1
            pos -= 1
        return result

     
相关推荐
冻柠檬飞冰走茶2 分钟前
PTA基础编程题目集 7-35有理数均值(C++语言实现)
开发语言·数据结构·c++·算法·均值算法
民乐团扒谱机19 分钟前
【微实验】倒谱算法(Cepstrum)深度解析:原理、数学推导与代码实现
人工智能·算法·语音识别
evans在进步1 小时前
LeetCode 394:字符串解码——Java 单栈模拟与嵌套解析详解
java·python·leetcode
Nil2081 小时前
leetcode 189轮转数组
数据结构·算法·leetcode
-dzk-1 小时前
【动态规划】LC 118.杨辉三角
算法·动态规划
恣逍信点1 小时前
《凌微经》静态自悖——变化之自因
人工智能·科技·算法·机器学习·业界资讯·拓扑学·哲学
ychqsq2 小时前
115.整理
经验分享·职场和发展
吃着火锅x唱着歌2 小时前
LeetCode 3885.设计事件管理器
算法·leetcode·职场和发展
土司大王2 小时前
LeetCode hto100——字母异位词分组
java·算法·leetcode
Eloudy2 小时前
预词力:LLM 的唯一形式化能力
人工智能·算法·agent