• 1441.用栈操作构件数组


    2020-05-25
    用栈操作构件数组

    给你一个目标数组 target 和一个整数 n。每次迭代,需要从 list = {1,2,3..., n} 中依序读取一个数字。

    请使用下述操作来构建目标数组 target :

    • Push:从 list 中读取一个新元素, 并将其推入数组中。
    • Pop:删除数组中的最后一个元素。
    • 如果目标数组构建完成,就停止读取更多元素。

    题目数据保证目标数组严格递增,并且只包含 1 到 n 之间的数字。

    请返回构建目标数组所用的操作序列。

    题目数据保证答案是唯一的。

    题解:
    思路1:递归
    var buildArray = function (target, n) {
      let len = 0, result = [], i = 1; // len记录找到的个数 result是输出的数组 i是当前的数值
      while (len < target.length) {
        result.push('Push'); // 无论如何线插入push
        if (target[len] === i) len++; // 如果目标的第len项等于i 则找到了一项 len自加继续遍历
        else result.push('Pop'); // 如果不等 插入pop
        i++; // i每次遍历自加
      }
      return result;
    };
  • 相关阅读:
    GolandQuick编辑器快捷键
    GitStand
    高阶函数
    文本和字节序列
    元组用法
    映射的弹性键查询
    字典的setdefault()
    数组、内存视图、双向队列
    Python之random.seed()用法
    用bisect来管理已排序的序列
  • 原文地址:https://www.cnblogs.com/lanpang9661/p/12954940.html
Copyright © 2020-2023  润新知