力扣 有序数组的平方

题目描述

给定一个按非递减顺序排序的整数数组 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 已按非递减顺序排序。

要点分析

方法一: 模拟

时间复杂度:O(nlog(n))

空间复杂度:O(log(n))

AC代码:

#include<algorithm>
#include<cmath>
class Solution {public:vector<int> sortedSquares(vector<int>& A) {for(int i=0;i<size(A);i++){A[i]=pow(A[i],2);}sort(A.begin(),A.end());return A;}
};

方法二: 通过左右指针对应的数据的平方比较大小双向夹逼

时间复杂度:O(n)

空间复杂度O(n)

AC代码:

class Solution {public:vector<int> sortedSquares(vector<int>& A) {int len=A.size();int a=0,b=len-1,i=b;vector<int> B(len);while(i>=0){//通过左右指针对应数据的平方比较大小,并向中间夹逼,避免找中间0的位置,同时降低了时间复杂度,妙!int left=A[a]*A[a],right=A[b]*A[b];if(left>right){B[i]=left;a++;}else{B[i]=right;b--;}i--;}return B;}
};

力扣 有序数组的平方相关推荐

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

    题目:977. 有序数组的平方 给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序. 示例 1: 输入:[-4,-1,0,3,10] 输出:[0,1,9,1 ...

  2. 力扣977有序数组的平方(c++版)

    977有序数组的平方(c++版) 链接: 力扣题目链接 思路 首先要理解题目里的非递减顺序是什么意思. 非递减顺序排列即是指:意思是关键字递增序排列,但是并非单调递增(因为有重复的关键字)从小到大或者 ...

  3. 力扣题:977. 有序数组的平方

    题目链接:977. 有序数组的平方 题目: 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序. 示例 1: 输入:nums = [-4, ...

  4. 代码随想录算法训练营第二天 | 力扣977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II

    代码随想录算法训练营第二天 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II 977.有序数组的平方 题目链接:有序数组的平方 题目描述: 给你一个按 非递减顺序 排序的整 ...

  5. 代码随想录Day02 | LeetCode977.有序数组的平方、LeetCode209.长度最小的子数组、LeetCode59.螺旋矩阵II

    977.有序数组的平方 力扣题目链接(opens new window) 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序. 示例 1: ...

  6. 代码随想录第二天 |LeetCode977.有序数组的平方,LeetCode209.长度最小的子数组,LeetCode59.螺旋矩阵II

    LeetCode977.有序数组的平方 977. 有序数组的平方 - 力扣(LeetCode) 暴力解法: 一开始不习惯用双指针解法,习惯性先平方再用双指针,发现做不出了HH.于是愉快的用传统暴力解法 ...

  7. 代码随想录算法训练营第二天 | LeetCode 977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II

    目录 一.今日心得感悟 1.数组从小到大排序 ①冒泡法--时间复杂度:O(nlogn) ②使用排序函数qsort--时间复杂度:O(nlogn) ③两端->中间(双指针法) --时间复杂度:O( ...

  8. 【代码随想录训练营】【Day02】第一章|数组|977.有序数组的平方|209.长度最小的子数组|59.螺旋矩阵II|总结

    977. 有序数组的平方 题目详细:LeetCode.977 解这道题的思路和方法有很多,最简单的方法就是计算出数组中每个元素的平方数,并记录在新数组中,最后对新数组进行排序即可得到答案,但这个方法效 ...

  9. 算法-----有序数组的平方

    题目 有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序. 示例 1: 输入:nums = [-4,-1,0,3,10] ...

最新文章

  1. win8计算机管理没有用户组,Win8右键计算机管理提示“该文件没有与之关联的程序”怎么办?...
  2. 一次“ora-12170 tns 连接超时”的经历
  3. java 快速入门_Java快速入门
  4. java基础----Runtime类的使用(一)
  5. 关于今天写Flex视频循环播放所出现的sdk问题
  6. CSS3伪类选择器:nth-child()(nth-child(odd)/nth-child(even))
  7. python百度aip移动目标监控系统_python利用百度云接口实现车牌识别
  8. 学习日报 7-10(验证码)
  9. 优秀logo设计解析_优秀Logo设计!字母造型解析
  10. win7误删计算机,Win7系统下文件数据被误删了怎么办
  11. 一步到位,直播系统源代码搭建直播推流服务器
  12. UI设计师如何通过兼职月入过万?
  13. 计算机主板维修,计算机主板维修从业技能全程通(70M)*
  14. Linux账户管理详解
  15. 安装semantic segmentation editor
  16. 什么是位移电流?位移电流密度计算公式详解
  17. -XX:+PrintHeapAtGC参数使用了解
  18. 华为Mate40系列国行参数价格曝光
  19. js提交成功后,清空表单
  20. 手机备忘录怎么设置提醒 备忘录提醒设置方法

热门文章

  1. 浅析 JNDI / DataSource / ConnectionPool 三者
  2. 十分钟-Nginx入门到上线
  3. foreach 用法例子
  4. 微信支付 body不是UTF-8编码以及中文签名错误的问题
  5. MySQL双主(master-master)补充
  6. Data truncation: Data too long for column错误分析
  7. 计算机设置重启时间表,电脑定时开关和重启方法
  8. 虚拟机centos7启动无法识别磁盘_分享VSAN磁盘无法识别的故障解决方法
  9. 4.5_abstract_factory_创建型模式:抽象工厂模式
  10. 某些error page不加载_细说So动态库的加载流程