【双指针-简单】977. 有序数组的平方

LeetCode977有序数组的平方(数组) 算法特点及适用场景该算法采用双指针法,巧妙地利用了原数组有序的特点,高效地解决了有序数组元素平方后再排序的问题,避免了先对所有元素平方然后再进行常规排序(如使用快排等时间复杂度较高的排序算法)的复杂操作,时间复杂度仅为 ,代码实现简洁明了。适用于类似这种需要根据原数组的有序性以及特定元素关系(这里是元素平方大小比较)来构造新的有序数组的场景,只要满足可以通过双指针从两端向中间处理并根据一定规则填充新数组的情况,都可以考虑使用这种思路来解决问题。注意事项及可能遇到的问题。 阅读详情

【题目】
在这里插入图片描述提示:

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

进阶:

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

【代码】
在这里插入图片描述

class Solution:
    def sortedSquares(self, nums: List[int]) -> List[int]:
        right,left=len(nums),0
        for idx,item in enumerate(nums):
            if item>=0:                
                right=idx
                break
        rr=right
        left=right-1
        ans=[]
        while rr<len(nums) and left>=0:
            if nums[rr]<=abs(nums[left]):                
                ans.append(nums[rr]**2)
                rr+=1
            else:
                ans.append(nums[left]**2)
                left-=1
        while rr<len(nums):
            ans.append(nums[rr]**2)
            rr+=1
        while left>=0:
            ans.append(nums[left]**2)
            left-=1
        return ans

【方法2】
在这里插入图片描述

class Solution:
    def sortedSquares(self, nums: List[int]) -> List[int]:
        left,right=0,len(nums)-1
        ans=[]
        while left<=right:
            l=nums[left]**2
            r=nums[right]**2
            if l>=r:
                ans.insert(0,l)
                left+=1
            else:
                ans.insert(0,r)
                right-=1
        return ans
class Solution:
    def sortedSquares(self, nums: List[int]) -> List[int]:
        left,right=0,len(nums)-1
        ans=[0 for i in range(len(nums))]
        pos=len(nums)-1
        while left<=right:
            l=nums[left]**2
            r=nums[right]**2
            if l>=r:
                ans[pos]=l
                left+=1
            else:
                ans[pos]=r
                right-=1
            pos-=1
        return ans
国土变更调查中六类拓扑错误的成因分析与高效修复实践 本文深入分析了国土变更调查中六类拓扑错误的成因,包括边界不一致和不规则图形等常见问题,并提出了高效的自动化修复实践。通过智能咬合算法、引力-斥力平衡模型等核心技术,显著提升了修复效率,节省人工质检时间70%。文章还分享了实战中的避坑指南和黄金法则,为相关从业人员提供了宝贵经验。 阅读详情

相关推荐

nvprof:CUDA编程性能分析工具

NVIDIA提供了具有高性能计算的GPU产品,如何检验硬件的实际性能,写出高效的CUDA代码让算力加速卡物尽其用,那可以通过其配套提供的“护城河”软件工具链来检验和帮助发挥GPU的性能:nvprof。如下,对于将8192个A,B向量进行向量加法运算,即C[i] = A[i] + B[i],当软件设置不同的blocknum, threadnum时候,CUDA执行kernel的时间是不同的。比如如下命令,可以看到程序tmp1的总体性能,下面一行是打印gpu的执行时间情况。

Briwisdom的博客 3385

⭐算法入门⭐《双指针》简单01 —— LeetCode 977. 有序数组的平方

《双指针》简单01 —— LeetCode 977. 有序数组的平方

英雄哪里出来 3811

Petalinux实战:3种方法调试AXI UART Lite设备(含minicom/screen/直接寄存器操作对比)

本文详细介绍了在Zynq平台上使用Petalinux调试AXI UART Lite设备的三种实用方法:用户空间工具(minicom/screen)、应用层程序(termios配置)和底层寄存器直接操作。文章对比了各方法的优缺点与适用场景,并重点解析了设备树配置、驱动加载等关键环节,帮助开发者快速定位并解决串口通信中的常见问题。

weixin_29190169的博客 433

【LeetCode-简单】977. 有序数组的平方-双指针

977. 有序数组的平方

ASDF的博客 551

高通camera调试经验总结

修改AF对焦模式 adb shell setprop vendor.debug.camera.af.manual 2 //使能手动对焦 adb shell setprop vendor.debug.camera.af.manual 0 //使能自动对焦

weixin_43381364的博客 1万+

Zynq-PS-SDK(12) 之 VDMA+VTC+AXI4S-VideoOut 视频通路硬件搭建

前面分别叙述了《Zynq-PS-SDK(9) 之 VDMA》、《Zynq-PS-SDK(10) 之 VTC》以及《Zynq-PS-SDK(11) 之 AXI4-Stream To Video Out》;搭建一个简单的视频通路(Framebuffer -> HDMI)就要用到这些个模块,总体的设计框图如下所示: 视频数据的 Framebuffer 在 DDR 中,通过 Processing System 写入进去; 数据通过高带宽的 AXI4 接口(这里用到了 HP AXI,即 64bits 带

StephenZhou 5593

[leetcode 简单 双指针]977. 有序数组的平方

题目描述 给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 示例 1: 输入:[-4,-1,0,3,10] 输出:[0,1,9,16,100] 示例 2: 输入:[-7,-3,2,3,11] 输出:[4,9,9,49,121] 提示: 1 <= A.length <= 10000 -10000 <= A[i] <= 10000 A 已按非递减顺序排序。 双指针 class Solution { public int[] sort

weixin_50088096的博客 76

影像组学分析流程中,图像分割前要做的事(图像预处理)

在InputVolume中无法找到自己想要重采样的序列,这时可以检查一下序列的Volume type是不是MRMLMulti。这时,Volume type将由MRMLMulti改为Scaler,随后即可在3D slicer中完成Resample Scaler Volume。2.1、重采样:通过3Dslicer中的Resample Scaler Volume实现。具体设置参数:spacing(1,1,1),Interpolation选择Bspline。2、图像预处理:重采样和标准化。

weixin_45011313的博客 3725

977. 有序数组的平方(简单 数组 排序 双指针)

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] 来源:力扣(LeetCode) 链接:https://leetcode-

weixin_43942435的博客 146

富芮坤fr8008gp 240X280 lvgl项目启动

fr8008gp_240X280_lvgl项目启动

cheng___yi的博客 1758

2025年上半年第1批信息系统项目管理师论文真题解析与范文

文章首先分析了项目经理在交付绩效域中应关注的重点领域,然后按照项目管理五大过程组顺序,阐述了各过程组中与交付绩效域协同的绩效域及协调目标,最后制定了各过程组中交付绩效域的测量指标。本项目的实践表明,系统化的交付绩效管理不仅能保证项目成功,还能创造超出预期的业务价值。需要结合具体项目案例,按照五大过程组(启动、规划、执行、监控、收尾)顺序,分析各过程组中与交付绩效域协同的其他绩效域及其协调目标。价值交付连续性:建立敏捷交付机制,将项目分解为12个迭代周期,每周期交付可验证成果,确保价值持续流动。

Programming Talk 823

【leetcode】977. 有序数组的平方(squares-of-a-sorted-array)(双指针)[简单]

链接 https://leetcode-cn.com/problems/squares-of-a-sorted-array/ 耗时 解题:9 min 题解:18 min 题意 给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 思路 刚开始没有想清楚,直接上手写的,所以我的思路有点复杂 ???? 。非常不建议用。 数组中有正有负的时候,找到正负分割的地方,或者 0 的位置。然后用双指针。 数组中元素非正,平方倒放。 数组中元素非负,平方正放。 时间复杂度:O

Krone_的博客 310

AI 时代嵌入式工程师的能力模型与学习路线:全系列收官

AI 时代嵌入式工程师的能力模型与学习路线:全系列收官

weixin_42162924的博客 40

leetcode977 有序数组的平方

若 nums[left] * nums[left] < nums[right] * nums[right],res[site] = nums[right] * nums[right]。若 nums[left] * nums[left] >= nums[right] * nums[right],res[site] = nums[left] * nums[left]。如果你想手动实现排序,可以使用更简单的排序算法,比如冒泡排序或选择排序。循环,因为只需要一次交换即可将较大的值放到正确的位置。

dokii1的博客 244

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

leetcode 977 有序数组的平方 [双指针]

一、题目描述: leetcode NO.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 <=

momDIY的博客 539

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

代码随想录算法训练营之JAVA|第二天| 977. 有序数组的平方

今天是第二天刷leetcode,立个flag,打卡60天。

BlingZeng的博客 275

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Leetcode(Java)笔记01|704. 二分查找、27. 移除元素、977.有序数组的平方

1、左闭右闭target 的区间为[left, right] (这个很重要非常重要),所以有如下两点:(1)、while (left

m0_50803876的博客 462

C++--LeetCode题库--有序数组的平方--新手简单解法

不是最好的解法,但是易懂。 题目:977.有序数组的平方 难度:简单 给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/squares-of-a-sorted-array 示例 输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 [16,1,0,9,100] 排序后...

qq_44361706的博客 459

DAY01 二分查找 与 双指针

第一天的题目还比较简单,思路也比较容易理解,更多需要的是反复练习,熟悉套路。

meanto的博客 654

LeetCode 977 题:有序数组的平方

LeetCode 第977题要求给定一个按非降序排列的整数数组nums,返回每个数字的平方并按升序排列。

weixin_48941116的博客 1249

算法第六天:力扣第977题有序数组的平方

排序后,数组变为 [0,1,9,16,100]平方后,数组变为 [16,1,0,9,100]组成的新数组,要求也按。

m0_75068978的博客 1500

力扣LeetCode977:有序数组的平方(python)

力扣997:有序数组的平方,有四种解法,都有详细的解答,还有一些细节提醒,可以收藏再看

diemeng9339的博客 1901

【Leetcode:977. 有序数组的平方 + 有序 + 双指针】

【Leetcode:977. 有序数组的平方 + 有序 + 双指针】给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

Coder_ljw的博客 941

有序数组的平方

有序数组的平方(力扣:977) 给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。

卜大爷的博客 2万+

力扣题解-977. 有序数组的平方

双指针方法

lpp 5432

跟着Carl大佬学leetcode之977 有序数组的平方

1.注意vector x(x1)和vector x(x1.size(),0)两种初始化方式;2.双指针的思路拓展3.sort(x.begin(),x.end())快排调用。

进击的lab681 774
上一篇: 【二分查找-中等】852. 山脉数组的峰顶索引
下一篇: 【双指针-中等】189. 轮转数组
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值