首页 > 其他分享 >1441. 用栈操作构建数组

1441. 用栈操作构建数组

时间:2022-10-16 14:45:39浏览次数:60  
标签:1441 int 复杂度 用栈 vector 差值 数组 Push

  • 本题非常简单,一个简单的模拟题

解题思路:

  • 如果两个相邻数字相差不为1,那么对两个数字的差值减1进行 “Push”“Pop”
  • 如果两个相邻数字相差不1,那么直接 “Push”即可
  • 举例:
    • 若为 1 3 5 7 8 的话
    • 则为 13 中间差值为 2 则需要一个 “Push”“Pop”2 入栈之后出栈,之后才能将 3 入栈,以此类推便可得到后面的序列
    • 78 差值为 1 ,只需要 “Push” 便可以

正确代码:

class Solution {
public:
    vector<string> ax;
    vector<string> buildArray(vector<int>& target, int n) {
        int m=target.size();
        for(int i=0;i<m;i++)
        {
            int x=0;
            if(i==0)
            {
                x=target[i]-0;
            }
            else
            {
                x=target[i]-target[i-1];
            }   
            for(int j=0;j<x-1;j++)
            {
                ax.push_back("Push");
                ax.push_back("Pop");
            }
            ax.push_back("Push");
        }
        return ax;
    }
};

复杂度分析:

  • 时间复杂度为O(n);
  • 空间复杂度为O(n);

标签:1441,int,复杂度,用栈,vector,差值,数组,Push
From: https://www.cnblogs.com/bzxf/p/16796196.html

相关文章

  • 数组去重方法
    1. 使用es6set方法[...newSet(arr)]letarr=[1,2,3,4,3,2,3,4,6,7,6];letunique=(arr)=>[...newSet(arr)];unique(arr);//[1,2,3,4,6,7] 2.inde......
  • 【leetcode_C语言_数组_day2】977.有序数组的平方&&209.长度最小的子数组&&59. 螺旋矩
    977.有序数组的平方1.题目给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例1:输入:nums=[-4,-1,0,3,10]......
  • C语言之字符串与字符数组的区别
     1.字符串的定义:(1)单个字符:charch='i';//单个字符的定义(2)一维字符串数组:chararr[]="love";(这种方法定义的一维字符串数组必须赋值)chararr[4];(想内存申请创建可以......
  • 748. 数组的右下半部分
    文章目录​​Question​​​​Ideas​​​​Code​​Question输入一个二维数组M[12][12],根据输入的要求,求出二维数组的右下半部分元素的平均值或元素的和。右下半部分是指......
  • 747. 数组的左上半部分
    文章目录​​Question​​​​Ideas​​​​Code​​Question输入一个二维数组M[12][12],根据输入的要求,求出二维数组的左上半部分元素的平均值或元素的和。左上半部分是指......
  • javascript 数组
    javascript数组文章目录​​javascript数组​​​​1.简介​​​​2.创建数组​​​​3.访问数组​​​​4.数组方法和属性​​​​5.创建新方法​​​​6.实例​​......
  • 1441. 用栈操作构建数组
    1441.用栈操作构建数组给你一个数组target和一个整数n。每次迭代,需要从 list={1,2,3...,n}中依次读取一个数字。请使用下述操作来构建目标数组targ......
  • DS | 一维数组 & 二维数组 & 对称矩阵 & 三角矩阵 & 三对角矩阵地址的计算
    一维数组的地址计算设每个元素的大小是\(size\),首元素的地址是\(a[1]\),则a[i]=a[1]+(i-1)*size若首元素的地址是\(a[0]\)则a[i]=a[0]+i*size二维数组的地......
  • 初识C语言(2)——数组、操作符、关键字
    ......
  • 用栈操作构建数组
    给你一个数组target和一个整数n。每次迭代,需要从 list={1,2,3...,n}中依次读取一个数字。请使用下述操作来构建目标数组target:"Push":从list中读取一个......