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

977. 有序数组的平方 双指针

977. 有序数组的平方

相向双指针

思路
nums数组非递减,平方后最大值一定在待排序区间的最两端(最左端 left 或最右端 right),每次循环取最大值添加到res数组中,
更新对应的边界缩小区间,重复上述过程直至 left > right。

class Solution {public int[] sortedSquares(int[] nums) {int k = nums.length;int left = 0;int right = k - 1;int[] res = new int[k];// 对每个元素做平方运算for (int i = 0; i < k; i++) {nums[i] = nums[i] * nums[i];}// 最大值不是在待处理区间最左端,就是在最右端while (left <= right) {if (nums[left] < nums[right] ) {res[--k] = nums[right];right--;} else {res[--k] = nums[left];left++;}}return res;}
}
http://www.gsyq.cn/news/19710.html

相关文章:

  • 【IMU】6轴数据校准算法
  • 【仿生机器人】核心采购清单 (仿生机器人头方案)
  • 常见问题解决 --- wireshark安装失败
  • Node.js 性能优化:实用技巧与实战指南 - 教程
  • 3.1 策略梯度方法(Policy Gradient Methods)
  • perl语言中的三目运算符和do代码块
  • ll
  • 2.5 分布式学习(Distributed Learning)
  • 11-Redis 集合类型深度指南:从去重特性到集合运算场景落地 - 详解
  • Linux存储媒介devmount
  • 单片机--概述 - 指南
  • Linux系统目录(文件)结构
  • 2025 工业风机十大品牌全景解析报告:覆盖离心风机,防爆风机,矿用风机的最新推荐
  • 详细介绍:P3.7计算机视觉
  • shell排错
  • 格式化输出与文本处理
  • React 19.2 重磅更新!这几个新特性终于来了
  • Akka.NET高性能分布式Actor框架完全指南
  • 基于Docker搭建MySQL Cluster
  • 某中心与华盛顿大学公布机器人研究奖项与学者名单
  • 占位符
  • 什么是IO多路复用?
  • 进程、线程和协程之间的区别和联系
  • 挣点小钱的副业(附带新手教程)0元的快乐
  • 软考~高效的系统规划与管理师考试—知识篇—V2.0—第四章 IT 服务规划设计 — 2017 年 2018 年 2020 年 2022 年 2023 年
  • 应用安全 --- 安卓安全 之 文件校验
  • 2.1 函数逼近(Function Approximation)
  • VSCode code-snippets Note
  • Elasticsearch 备份:snapshot 镜像使用篇
  • 2025 年 10 月金属门窗厂家加盟代理品牌推荐排行榜,行业权威盘点与品质红榜发布