数组——有序数组的平方

文章目录

题目顺序:代码随想录算法公开课,b站上有相应视频讲解

一、题目

977. Squares of a Sorted Array

Given an integer array nums sorted in non-decreasing order, return an array of the squares of each number sorted in non-decreasing order.

Example 1:

Input: nums = -4,-1,0,3,10

Output: 0,1,9,16,100

Explanation: After squaring, the array becomes 16,1,0,9,100.

After sorting, it becomes 0,1,9,16,100.

Example 2:

Input: nums = -7,-3,2,3,11

Output: 4,9,9,49,121

Constraints:

1 <= nums.length <= 104

-104 <= numsi <= 104

nums is sorted in non-decreasing order.

Follow up: Squaring each element and sorting the new array is very trivial, could you find an O(n) solution using a different approach?

题目来源: leetcode

二、题解

排序写法

cpp 复制代码
class Solution {
public:
    vector<int> sortedSquares(vector<int>& nums) {
        int n = nums.size();
        for(int i = 0;i < n;i++){
            nums[i] = nums[i] * nums[i];
        }
        sort(nums.begin(),nums.end());
        return nums;
    }
};

双指针写法

cpp 复制代码
class Solution {
public:
    vector<int> sortedSquares(vector<int>& nums) {
        int n = nums.size();
        vector<int> res(n,0);
        int index = n - 1;
        for(int i = 0,j = n - 1;i <= j;){
            if(nums[i] * nums[i] > nums[j] * nums[j]){
                res[index--] = nums[i] *nums[i];
                i++;
            }
            else{
                res[index--] = nums[j] * nums[j];
                j--;
            }
        }
        return res;
    }
};
相关推荐
WL学习笔记1 小时前
C & C++ 内存管理
c++·c++内存管理
pride.li1 小时前
第03章 Python 教程-基础语法:注释与变量
服务器·前端·后端·python·算法·计算机视觉
旺仔仔仔2 小时前
机器人项目实战(5):从单次抓取,到接收指令连续做事
算法
旺仔仔仔2 小时前
机器人项目实战(2):识别物体、提取点云,再到抓取姿态
算法
姜鱼问生2 小时前
密码明明一样,为什么 GPG 说“错的“?
后端·算法·架构
启观川2 小时前
数据结构与算法-第 3 章 常用算法-贪心算法
数据结构·笔记·python·算法·贪心算法
对空六课3 小时前
指标口径生效时间的版本查询实现
大数据·服务器·前端·算法·数据分析
对空六课3 小时前
RFM分层边界变化的回溯计算
大数据·服务器·前端·数据库·人工智能·算法·数据分析
一勺思维3 小时前
我为什么把 Agent 的核心逻辑从 LangChain 里搬出来手写
算法
碧海银沙音频科技研究院3 小时前
基于炬芯ATS308X的LE aduio LC3编解码算法功能实现
算法