力扣第二天:977 移除数组的平方

 力扣第二天:977 移除数组的平方_第1张图片

 

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

 力扣第二天:977 移除数组的平方_第2张图片

方法1:调用multiset容器:

我们采用multiset容器来存储每一个平方后的数字,因为multiset容器可以对存储的数字默认从大到小的排序。我们排序好之后再清空nums容器,把数据存储到multiset容器中,这样就可以实现从小到大存储一个数组平方后的新数组。

class Solution {
public:
    vector sortedSquares(vector& nums) {
         multisetd;
        for(int i=0;i

 方法2:调用STL内置函数sort:

内置函数大大降低了我们的操作成本。

class Solution {
public:
    vector sortedSquares(vector& nums) {
        for(int a=0;a

方法3:双指针:

class Solution {
public:
    vector sortedSquares(vector& nums) {
       int left=0;
       int right=nums.size()-1;
       int k=nums.size();
       vector newnums(k,0);
       while(k>0)
       {
           int a=nums[left]*nums[left];
           int b=nums[right]*nums[right];

           if(a>=b)
           {
               newnums[--k]=a;
               left++;
           }
           else if(a

你可能感兴趣的:(leetcode,leetcode,算法)