当前位置: 首页 > news >正文

自助建站设计工作主要包括热门传奇网页游戏排行榜

自助建站设计工作主要包括,热门传奇网页游戏排行榜,厦门自主建站模板,wordpress视频去广告插件下载文章目录 一、题目二、C# 题解 一、题目 堆盘子。设想有一堆盘子,堆太高可能会倒下来。因此,在现实生活中,盘子堆到一定高度时,我们就会另外堆一堆盘子。请实现数据结构 SetOfStacks,模拟这种行为。SetOfStacks 应该由…

文章目录

  • 一、题目
  • 二、C# 题解

一、题目

  堆盘子。设想有一堆盘子,堆太高可能会倒下来。因此,在现实生活中,盘子堆到一定高度时,我们就会另外堆一堆盘子。请实现数据结构 SetOfStacks,模拟这种行为。SetOfStacks 应该由多个栈组成,并且在前一个栈填满时新建一个栈。此外,SetOfStacks.push()SetOfStacks.pop() 应该与普通栈的操作方法相同(也就是说,pop()返回的值,应该跟只有一个栈时的情况一样)。 进阶:实现一个 popAt(int index) 方法,根据指定的子栈,执行pop操作。

  当某个栈为空时,应当删除该栈。当栈中没有元素或不存在该栈时,poppopAt 应返回 -1.

  点击此处跳转题目。

示例1:

输入:
[“StackOfPlates”, “push”, “push”, “popAt”, “pop”, “pop”]
[[1], [1], [2], [1], [], []]
输出:
[null, null, null, 2, 1, -1]

示例2:

输入:
[“StackOfPlates”, “push”, “push”, “push”, “popAt”, “popAt”, “popAt”]
[[2], [1], [2], [3], [0], [0], [0]]
输出:
[null, null, null, null, 2, 1, 3]

二、C# 题解

  这题不难,但是很繁琐。尤其是题目没有说明清楚,不仅不给出数据规模,而且还会出现栈的大小为 0 的情况,真是绷不住了。当中间栈有元素弹出时,后面的元素并不前移,这点题目也没说,也是挺离谱的。

public class StackOfPlates {private class Node {public int val = 0; // 若作为头结点,则表示该链表串联的元素个数public Node next = null;public Node(int v, Node n) {val = v;next = n;}}private Node[] stack;                   // 头结点数组,每个结点连接一个链表,表示一个栈private int MAX_CAP, p = -1;            // MAX_CAP 表示每个栈最多有几个盘子,p 用于指向当前栈private static int MAX_STACK_NUM = 999; // 栈的最大个数public StackOfPlates(int cap) {MAX_CAP = cap;stack = new Node[MAX_STACK_NUM];}public void Push(int val) {// 前置判断条件:不给放盘子或者栈达到最大个数if (MAX_CAP == 0 || p == MAX_STACK_NUM - 1 && stack[p].val == MAX_CAP) return; // 如果 p 为 -1 或当前栈满,则激活新栈if (p == -1 || stack[p].val == MAX_CAP) stack[++p] = new Node(0, null); // 压入元素stack[p].next = new Node(val, stack[p].next);stack[p].val++;}public int Pop() {// 前置判断条件:不给放盘子或者没有栈if (MAX_CAP == 0 || p == -1) return -1; // 弹出元素int result = stack[p].next.val;stack[p].next = stack[p].next.next;stack[p].val--;// 如果当前栈满,则指针前移if (stack[p].val == 0) stack[p--] = null;return result;}public int PopAt(int index) {// 前置判断条件:不给放盘子或没有栈if (MAX_CAP == 0 || stack[index] == null) return -1;// 弹出元素int result = stack[index].next.val;stack[index].next = stack[index].next.next;stack[index].val--;// 移除后栈为空,则将后面的栈前移if (stack[index].val == 0) {for (int i = index; i < p; i++) {stack[i].next = stack[i + 1].next;stack[i].val = stack[i + 1].val;stack[i + 1].next = null;}stack[p--] = null;}return result;}
}/*** Your StackOfPlates object will be instantiated and called as such:* StackOfPlates obj = new StackOfPlates(cap);* obj.Push(val);* int param_2 = obj.Pop();* int param_3 = obj.PopAt(index);*/
  • 时间复杂度: O ( 1 ) O(1) O(1)
  • 空间复杂度: O ( n ) O(n) O(n)
http://www.yayakq.cn/news/873645/

相关文章:

  • 网站建设平台协议书前台网站系统源码
  • 如何写一个自己的网站iis添加网站
  • 手机端网站变成wap珠海建设局网站
  • 婚礼案例网站共享空间网站开发公司
  • 做哪种网站流量大ps软件免费
  • 西安php网站建设带分页的wordpress模板
  • 哈尔滨如何快速建站做企业网站一定要企业邮箱嘛
  • 在线学习平台网站建设有什么功能有哪些建设网站公司
  • 大石桥做网站东台网站建设
  • 网站主色怎么选择无锡网站建设推荐智勇
  • 网站项目开发流程图app设计尺寸规范
  • 烟台做网站企业网站建设 有限公司
  • 南京百度网站制作百姓网推广怎么收费标准
  • 松江网站建设品划网络十大免费网站推广
  • 分析建设网站的可行性分析家用机做网站服务器
  • 周口网站建设电话上海网站建设哪家做得好
  • 实用网站建设期末考试wordpress打开高级设置
  • 淮滨网站建设佛山小程序开发平台
  • 受欢迎的徐州网站建设百度官方版
  • 哪些网站可以做设计网站备案做优惠券
  • 柳州网站推广dux3.0 wordpress下载
  • 上海网站seo优化html5手机app网站模板免费下载
  • 如何在百度上搜到网站网站开发的微端
  • 室内设计网站建设包头哪里做网站
  • 谷歌 网站开发亚圣信息科技做网站怎么样
  • 网站没有做伪静态是什么样子网站注册和进入asp
  • 南京网站设计建设推荐页面跳转不了怎么回事
  • 公司开发网站建设价格做网站开发哪里好
  • 怎么看到网站开发时间梧州门户网站
  • 佛山微网站建设报价东莞软件外包公司