当前位置: 首页 > news >正文

977. 有序数组的平方

977. 有序数组的平方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]

提示:

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

暴力做法:时间复杂度为nlogn

class Solution { public: vector<int> sortedSquares(vector<int>& nums) { int left=0; for(;left<nums.size();left++){ nums[left]=nums[left]*nums[left]; } sort(nums.begin(),nums.end()); return nums; } };

双指针做法:时间复杂度为n

class Solution { public: vector<int> sortedSquares(vector<int>& nums) { vector<int> result(nums.size()); int k=nums.size()-1; for(int i=0,j=nums.size()-1;i<=j;){ if(nums[i]*nums[i]<nums[j]*nums[j]){ result[k]=nums[j]*nums[j]; j--; k--; } else { result[k]=nums[i]*nums[i]; i++; k--; } } return result; } };

因为最值只会出现在俩端,所以只需要左右两端的值进行比较即可,把大的数放在数组的最右端,再移动某一个含大值端的指针。

注意:左右俩端指针相同情况也得考虑,不然就忽视了那个元素了

http://www.cnnetsun.cn/news/1456861.html

相关文章:

  • Nanobot环境下的OpenClaw优化:CNN图像识别性能提升50%
  • 别再被浏览器红叉吓到!手把手教你用OpenSSL自签证书搞定本地HTTPS开发环境
  • Wan2.1 VAE快速上手:Anaconda虚拟环境配置与依赖一键安装
  • 番茄小说下载器:基于Rust的跨平台数字阅读解决方案
  • 探索Mongoose:MongoDB的高效对象建模工具
  • Python入门:1.Python介绍
  • 如何将鲁班H5与WordPress、Drupal等主流CMS平台完美对接?超详细集成指南
  • ESP32驱动MLX90640红外测温模块的完整避坑指南(附Arduino代码)
  • React Native Device Info 终极安全指南:如何在保护用户隐私的前提下获取设备信息
  • 最近在折腾海康威视工业相机的二次开发,发现网上针对多相机管理的C#案例确实不多。直接上干货,分享几个关键点和踩过的坑
  • 知识竞赛系统怎么选?这份推荐指南全讲透了
  • Apache OpenWhisk错误处理终极指南:如何优雅应对各种异常场景
  • 动态调整模糊分割系数
  • Qwen2-VL-2B-Instruct数据库课程设计:构建多模态内容管理平台
  • 终极指南:SDCycleScrollView与其他轮播库对比分析,如何选择最适合的方案
  • 【IDEA】IntelliJ IDEA 最新、最全快捷键指南(Windows + MacOS 完整版)
  • R语言实战:影像组学特征工程与机器学习模型构建全解析
  • Pry命令别名设置:10个高效调试技巧的终极指南
  • VLC播放器美化终极指南:5分钟打造专属影院级播放体验!
  • 气缸充放气仿真这个事儿听起来挺工程,但用MATLAB搞起来其实特别有意思。咱今天不整那些虚的理论推导,直接动手撸代码,看看气压怎么变、温度怎么飘
  • STM32C8t6 激光雷达数据处理与PWM控制实战
  • 【最新】2026年3月OpenClaw(Clawdbot)本地7分钟超简单集成教程
  • 前几天帮同专业的哥们扒他专业课课件里的截图文字,几百张图一张一张敲简直要疯,后来翻出吃灰半年的MATLAB,花了俩小时搭了个小工具,终于不用当人肉打字机了
  • 基于STM32的嵌入式设备集成影墨·今颜AI能力边缘计算方案
  • 保姆级教程:用DosBox Daum给Win95装上3dfx Voodoo显卡驱动,告别虚拟机卡顿
  • Youtu-VL-4B-Instruct-GGUF模型社区贡献指南:从CSDN分享到开源协作
  • 实时AI信号引擎NexusPulse™驱动肿瘤学决策
  • 开源工具RyzenAdj:AMD锐龙处理器性能调校与功耗平衡指南
  • Bidili Generator实操手册:如何编写高效Prompt触发Bidili LoRA专属风格
  • 如何快速实现批量下载:CyberdropBunkrDownloader开源工具的终极使用指南