LeetCode.977-排序数组的平方(Squares of a Sorted Array)

2026年软考信息安全工程师备考指南 信息安全工程师是信息产业部和人事部举办的软考中新增开的一门考试。软考全称全国计算机技术与软件专业技术资格(水平)考试,这门新开的信息安全工程师分属该考试“信息系统”专业,位处中级资格,是信息产业部和人事部在最新的“国人厅发[2007]139号文件中新增的专业。2016年下半年,第一次开考信息安全工程师(中级)考试。 考试科目: 1.信息安全基础知识,考试时间为150分钟,笔试,选择题; ... 阅读详情

这是悦乐书的第369次更新,第397篇原创

01看题和准备

今天介绍的是LeetCode算法题中Easy级别的第231题(顺位题号是977)。给定一个整数数组A按有序递增顺序排序,返回每个数字的平方,也按有序递增顺序返回。例如:

输入:[ - 4,-1,0,3,10]
输出:[0,1,9,16,100]

输入:[ - 7,-3,2,3,11]
输出:[4,9,9,49,121]

注意:

  • 1 <= A.length <= 10000

  • -10000 <= A[i] <= 10000

  • A按有序递增顺序排序。

02 第一种解法

直接翻译题目即可,借助Arrays的sort方法来对结果数组排序。

此解法的时间复杂度是O(N log(N)),空间复杂度是O(N)。

public int[] sortedSquares(int[] A) {
    int n = A.length, i = 0;
    int[] result = new int[n];
    for (int num : A) {
        result[i++] = num*num;
    }
    Arrays.sort(result);
    return result;
}

03 第二种解法

不使用新数组来作为结果数组返回,将A中的负数变正数,再排序,再取平方。

此解法的时间复杂度是O(N log(N)),空间复杂度是O(1)。

public int[] sortedSquares2(int[] A) {
    int n = A.length;
    for (int i=0; i<n; i++) {
        A[i] = A[i]<0 ? -A[i] : A[i];
    }
    Arrays.sort(A);
    for (int j=0; j<n; j++) {
        A[j] = A[j]*A[j];
    }
    return A; 
}

04 第三种解法

使用计数排序,对A中的数进行处理,然后计算平方。

此解法的时间复杂度是O(N),空间复杂度是O(N)。

public int[] sortedSquares3(int[] A) {
    int n = A.length, index = 0;
    int[] sort = new int[10001];
    int len = sort.length;
    for (int i=0; i<len; i++) {
        sort[i] = 1;
    }
    for (int num : A) {
        sort[num<0 ? -num : num]++;
    }
    int[] result = new int[n];
    for (int j=0; j<sort.length; j++) {
        if (sort[j] > 1) {
            while (sort[j]-1 > 1) {
                result[index++] = j*j;
                sort[j]--;
            }
            result[index++] = j*j;
        }
    }
    return result;
}

05 第四种解法

双指针,前后比较两个数,如果前面的数的绝对值大于后面的数,那么结果数组中当前位元素为前面的元素平方,反之就是后面的元素平方为结果数组当前位元素。

此解法的时间复杂度是O(N),空间复杂度是O(N)。

public int[] sortedSquares4(int[] A) {
    int n = A.length;
    int start = 0, end = n-1;
    int[] result = new int[n];
    for (int i=n-1; i>=0; i--) {
        if (Math.abs(A[start]) > Math.abs(A[end])) {
            result[i] = A[start]*A[start];
            start++;
        } else {
            result[i] = A[end]*A[end];
            end--;
        }
    }
    return result;
}

06 小结

算法专题目前已连续日更超过七个月,算法题文章237+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

HanLP的分词 阅读详情

相关推荐

基于开源项目构建 CFS(网络靶场实战演练)平台

摘要:构建CFS网络靶场可使用多个开源组件组合,包括EVE-NG/GNS3或ContainerLab构建网络环境,Kasm提供工作空间,CALDERA+Atomic Red Team实现攻击模拟,DetectionLab建立防御环境,Malcolm/Arkime进行流量监控,CyRIS提供编排框架,Vulhub/DVWA创建漏洞靶标。关键在于通过API深度集成各组件,同时需注重安全隔离、资源规划及维护成本。建议开发统一管理平台,结合Ansible/Terraform实现自动化部署,打造定制化实战演练环境。(

深山技术宅的博客 1853

题解——两种算法解Leetcode题库第977题(暨双指针法小结)

Leetcode第977题题解

weixin_54049495的博客 316

Maxwell个人初学经验及资料分享

前段时间学习了课题组基于Maxwell所建立的模型,因为以前从来没有使用过,只是按照一步一步记忆了操作,但总觉得不熟悉,我想是缺乏对这个软件整体的了解,真正想上手只会这一个模型也没有办法扩展。但是我感觉这些有限元分析软件学习起来应该有一些共性,基于以前对COMSOL学习的一点经验,我就在官网和其他网站找了一些学习资源构成一条基础入门之路,也可能有更好的资源,仅代表个人观点做一下分享。以上就是本人对该软件初步学习的一点理解,跟着这样的操作不到一个星期就能初步的掌握。...

怎么又是萝卜的博客 5644

数据结构与算法---有序数组的平方

力扣977题 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 第一种方法:直接求平方然后进行排序,这个应该是想起来最简单的。我第一反应就是用这个方法 c++代码 class Solution { public: vector<int> sortedSquares(vector<int>& nums) { for(int i = 0;i<nums.size();i++)

m0_50046535的博客 1537

Vitis开发环境下的双核ARM通信:Hello World背后的AMP架构解析

本文深入解析了Vitis开发环境下ZYNQ双核ARM Cortex-A9处理器的AMP架构与通信机制。通过详细的硬件配置、内存分配和核间通信实现步骤,展示了如何构建高效的双核Hello World系统,为嵌入式系统开发者提供了实用的开发指南和性能优化技巧。

weixin_29162439的博客 219

anaconda的conda国内加速镜像源(pytorch 快速安装)

最近清华源不太好使了,所以推荐中科大镜像源,如下 1.还原原始通道 conda config --remove-key channels 2.

qq_41719643的博客 2万+

【LeetCode977.有序数组的平方】——双指针法

【LeetCode977.有序数组的平方】——双指针法

weixin_51630192的博客 446

YOLO v11添加ap75指标

yolov11添加ap75指标,yolo系列添加ap75指标

zf_14159265358979的博客 1892

leetcode:977. 有序数组的平方

给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 暴力破解 先开方,再排序 public static int[] sortedSquares(int[] A) { int[] ans = new int[A.length]; for (int i = 0; i < A.len...

OceanStar的博客 368

详解如何用爬虫工具批量采集阿里巴巴批发网商品数据

本文主要介绍如何使用后羿采集器的智能模式,免费采集阿里巴巴批发网商品的批发价格、发货时间、是否代发等信息。 采集字段: 商品标题、商品链接、图片链接、标签1、标签2、标签3、价格、30天成交数、 评价、店铺 功能点目录: 如何对采集字段进行配置 如何采集列表+详情页类型网页 采集结果预览: 下面我们来详细介绍一下如何免费采集1688批发网的商品数据,我们以“羽绒服女”为例,具体步骤如下: 步骤一...

weixin_43777427的博客 1万+

UDPProbe UDP端口存活探测(发送特征包+响应分析)、UDP服务识别

qDebug() << "收到响应:" << ip.toString() << ":" << port << " 服务:" << serviceName << " 响应长度:" << response.size();qDebug() << "开始探测:" << targetIp << ":" << port << " 超时时间:" << timeout << "ms";qInfo() << "\n==================== UDP探测结果 ====================";

寒寒豆豆软件公司的博客 154

Leetcode 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 &

前路浩浩荡荡,万物皆可期待 355

零基础入门simulink1000例--第112例:在 Simulink 中构建一个基本的相控阵雷达波束形成系统仿真模型

摘要:本文详细介绍了使用Simulink实现相控阵雷达波束形成技术的完整流程。从创建Simulink模型、设计天线阵列、信号生成,到波束形成算法实现和结果可视化,涵盖了关键步骤。文章重点讲解了均匀线性阵列的设计、线性调频信号生成、相位偏移计算等核心技术,并提供了MATLAB代码示例。通过Scope或ArrayPlot模块进行结果分析,最终可导出为嵌入式代码部署。该系统展现了电子扫描波束的技术优势,为雷达系统设计提供了有效的仿真方法。

amy_mhd的博客 212

【Leetcode】977. 数组平方的排序(Squares of a Sorted Array)

Leetcode - 977 Squares of a Sorted Array (Easy) 题目描述:给定一个升序数组,对每一个元素进行平方运算,运算后的数组依然升序。 Input: [-4,-1,0,3,10] Output: [0,1,9,16,100] 解题思路:双指针。从数组的两端开始向中间遍历,比较两个元素找出最大的元素。 public int[] sortedSquares(in...

厉兵秣码 354

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Leetcode【977】---Squares of a Sorted Array排序数组的平方【数组】【Easy】

题目描述 给定一个整数数组A,按非降序存储,返回数组内每个数的平方,也是按非降序存储的。 样例1 Input: [-4,-1,0,3,10] Output: [0,1,9,16,100] 样例2 Input: [-7,-3,2,3,11] Output: [4,9,9,49,121] 注意 1 &lt;= A.length &lt;= 10000 -10000 &lt;= A[...

weixin_42702666的博客 245

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

leetcode记录:难度简单:977. Squares of a Sorted Array(已排序的数组的平方)

题目出处:https://leetcode.com/problems/squares-of-a-sorted-array/ 题目描述: 给一个非递减的整数序列,返回一个从小到大的数列的平方的数组, Example 1: Input: [-4,-1,0,3,10] Output: [0,1,9,16,100] Example 2:  Input: [-7,-3,2,3,11] Out...

unAlpaca的博客 193

IEM模型,地表粗糙度模拟

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

【LeetCode】977. Squares of a Sorted Array 解题报告(C++)

作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录题目描述题目大意解题方法排序日期 题目地址:https://leetcode.com/problems/squares-of-a-sorted-array/ 题目描述 Given an array of integers A sorted in non-decreasing ord...

负雪明烛 1826

LeetCode:977. Squares of a Sorted Array - Python

977. Squares of a Sorted Array 问题描述: Given an array of integers A sorted in non-decreasing order, return an array of the squares of each number, also in sorted non-decreasing order. Example 1: Input: ...

Growth Diary 1563

[977] Squares of a Sorted Array 有序数组的平方

[C++]一个有序数组中,其元素的平方最大值一定产生于数组的两端。所以不直接生成结果数组,而是反向填充,每次都只找到待处理元素的最大值。

G321666的博客 661

[LeetCode] 977. Squares of a Sorted Array

题目链接:Squares of a Sorted Array 解题思路: 两种方法,一种是暴力,先求平方再排序;另一种稍微改进,每次从两边找绝对值较大的那个数,求平方。 法一: class Solution { public: vector&lt;int&gt; sortedSquares(vector&lt;int&gt;&amp; A) { for (i...

Selukwe的博客 282

LeetCode 977——Squares of a Sorted Array

Given an array of integersAsorted in non-decreasing order,return an array of the squares of each number,also in sorted non-decreasing order. Example 1: Input: [-4,-1,0,3,10] Output: [0,1,9,1...

CrazyOnes的博客 481

Leetcode 977.有序数组的平方(Squares of a Sorted Array)

Leetcode 977.有序数组的平方 1 题目描述(Leetcode题目链接)   给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 输入:[-4,-1,0,3,10] 输出:[0,1,9,16,100] 输入:[-7,-3,2,3,11] 输出:[4,9,9,49,121] 提示: 1 <= A.length <= 10000...

qq_39378221的博客 222

【LeetCode】977. Squares of a Sorted Array数组 双指针

Given an array of integers Asorted in non-decreasing order,return an array of the squares of each number,also in sorted non-decreasing order. Example 1: Input: [-4,-1,0,3,10] Output: [0,1,9,16...

韩旭051的博客 655

977. Squares of a Sorted Array*

977. Squares of a Sorted Array* https://leetcode.com/problems/squares-of-a-sorted-array/ 题目描述 Given an array of integers A sorted in non-decreasing order, return an array of the squares of each number...

珍妮的选择的博客 282

NYUer | LeetCode977 Squares of a Sorted Array

NYUer | LeetCode977 Squares of a Sorted Array

Moses_SU的博客 569

LeetCode 977. Squares of a Sorted Array 有序数组的平方 JAVA实现

题目内容: 给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。   示例 1: 输入:[-4,-1,0,3,10] 输出:[0,1,9,16,100] 示例 2: 输入:[-7,-3,2,3,11] 输出:[4,9,9,49,121]   提示: 1 &lt;= A.length &lt;= 10000 -10000 &lt;= A...

帽帽的博客 776
上一篇: LeetCode.976-周长最大的三角形(Largest Perimeter Triangle)
下一篇: LeetCode.985-查询后偶数的总和(Sum of Even Numbers After Queries)
程序员小川
博客等级 码龄10年 47粉丝 305原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值