ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

977 有序数组的平方

2021-04-05 11:00:03  阅读:157  来源: 互联网

标签:977 sort 平方 nums res 复杂度 数组 解法


文章目录

简介

我将参考leetcode中的部分题解和网上资料,自己将自己的刷题思路和过程进行总结。
可能有一些自己的思路,但是大多数还是参考其他网友的想法。
如果对您有帮助我备感荣幸~

解法1

将每个item平方然后排序。

在这里插入图片描述
注意,sort需要:

#include<algorithm>

using namespace std;

时间复杂度:
遍历的部分需要n,sort需要nlogn,一共是O(nlogn)

空间复杂度:
res需要n,sort需要logn的栈空间进行排序

解法2

利用题目中本身有序这个特点,使用双指针法。

在这里插入图片描述
首先p1, p2分别从nums的两端遍历,为了寻找最大的平方数。
然后将最大的平方数放到res的最后,然后向前移动res的游标。

主要利用了nums数组中存在负数和有序这两个特点和最后我们要返回的是每个数字的平方这个特点,这就说明了最大的平方数一定会在nums的两端产生。

时间复杂度:
只需要遍历一遍nums,O(n)

空间复杂度:
只需要一个额外的数组res,O(n)

标签:977,sort,平方,nums,res,复杂度,数组,解法
来源: https://blog.csdn.net/qq_40742298/article/details/115439061

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有