文章目录

  • 1. 题目信息
  • 2. 解题

1. 题目信息

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/squares-of-a-sorted-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 找到数组中第一个非负数下标 i,第一个负数下标 j = i - 1;
  • 从中间向两边比较 abs(A[ j ]) 和 A[ i ],取小的数的平方push进入答案数组ans

class Solution {public:vector<int> sortedSquares(vector<int>& A) {int i, j;for (i = 0; i < A.size() && A[i] < 0; ++i){//find the index of nonpositive value}j = i-1;vector<int> ans;while(j >= 0 && i < A.size()){if(A[i] < abs(A[j])){ans.push_back(A[i]*A[i]);++i;}else{ans.push_back(A[j]*A[j]);--j;}}if(j < 0){while(i < A.size()){ans.push_back(A[i]*A[i]);++i;}}else//i到达末尾{while(j >= 0){ans.push_back(A[j]*A[j]);--j;}}return ans;}
};

LeetCode 977. 有序数组的平方相关推荐

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

    leetcode 977.有序数组的平方 想到昨天写的双指针,十分刻意用了一下,感觉还是比较生疏,还得加强练习和思考,然后发现还需要排序,想到了vector的排序sort(),但是觉得直接用不好,也忘 ...

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

    LeetCode 977.有序数组的平方 题目链接:977.有序数组的平方 思路: 1.先对每个数进行遍历平方,并插入新的容器中 2.对容器进行排序,返回就可以了 缺陷:开辟了新的容器空间 class ...

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

    LeetCode 977.有序数组的平方 双指针法:数组其实是有序的, 只不过负数平方之后可能成为最大数了.那么数组平方的最大值就在数组的两端,不是最左边就是最右边,不可能是中间.此时可以考虑双指针法 ...

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

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

  5. LeetCode 977. 有序数组的平方(详解)

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

  6. leetcode(977)有序数组的平方

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

  7. leetcode 977. 有序数组的平方(双指针)

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

  8. Leetcode 977.有序数组的平方

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

  9. 2022-7-6 Leetcode 977.有序数组的平方

    为什么循环条件要设置 i <= j? 因为最后是 i 和 j 同时指向最小的数字. class Solution {public:vector<int> sortedSquares( ...

最新文章

  1. TensorFlow优化器及用法
  2. LR分析法从理解到运用
  3. 定时器0工作方式1,定时1s
  4. HDFS分布式文件系统理论知识
  5. Qt之模式、非模式、半模式对话框
  6. Vue指令之v-on
  7. win7 开始 计算机箭头,Windows7美化教程:Win7快捷方式箭头怎么去掉
  8. Resolution 归结原理
  9. 向你推荐一个五星级云原生DevOps论坛
  10. RoaringBitmap应用场景
  11. 【雅思口语】安娜口语学习记录 Part1
  12. Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering
  13. C - C语言实验——求两个整数之中较大者
  14. 简明扼要说浏览器环境
  15. Linux文本处理三剑客(awk、grep、sed)
  16. eclipse设置护眼豆沙绿背景色以及字体颜色
  17. Win10,Win11系统安全中心提醒“找到可能不需要的应用”弹窗,如何关闭?
  18. 解决ADB搜不到设备的问题
  19. 如何安装Java软件开发工具包(JDK)
  20. TiDB Server

热门文章

  1. 八大排序算法:插入(2:插入、希尔)、选择(2:选择、堆)、交换(2:冒泡、快速)、归并、基数
  2. 基于matlab 宗晓萍,基于ADAMS和MATLAB的机械臂控制仿真
  3. python 比赛成绩预测_利用 Python 预测英雄联盟胜负,分析了 5 万多场比赛才得出的数据!值得,涨知识了!...
  4. 结构体定义的三钟方式
  5. 第二季3:海思MPP模块与视频缓冲池
  6. WPF 开源项目 【watcher】 守望者,一款监控,统计,分析你每天在自己电脑上究竟干了什么的软件...
  7. Sub-process /usr/bin/dpkg returned an error code (1)解决办法
  8. 【struts2】预定义拦截器
  9. 哥谈的是语言,不是寂寞
  10. SQL Server中常用全局变量介绍