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

淘宝优惠劵网站建设提供建议的网站模板

淘宝优惠劵网站建设,提供建议的网站模板,汕头建站公司模板,电子商务网站建设是什么意思文章目录 一、题目二、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/982955/

相关文章:

  • 如何增加网站关键词库wordpress备份插件中文
  • 贵阳专用网站建设整站seo免费咨询
  • 德清网站制作网站推广方案设计
  • 手机怎么自创网站哪些编程语言适合网站开发
  • 免费建自己域名的网站吗wordpress网速慢
  • 滁州市建设工程质量监督站网站如何做免费音乐网站
  • 最简单网站设计的代码wordpress 邮箱注册
  • 佛山网站建站推广上海建筑设计有限公司
  • 老域名新网站推广h5页面制作图片
  • 做公司网站需要多久手机优化不足80怎么办
  • 网站单页在线制作装修网站建设方案
  • 兰州网站制作联系方式网站建设及优化方案
  • 网站建设:成都今网科技网站提交搜索引擎后出现问题
  • 网站备案需要哪些资料怎么自学网站建设
  • 什么是网站排名优化公司门户网站项目模版
  • 企业宣传网站案例wordpress googlevis 嵌入
  • 抖音代运营图片怎么把网站做seo到首页
  • 孝感做网站linux有wordpress
  • 广西论坛网站建设网页翻译软件哪个好用
  • 垦利县企业型网站建设石家庄网站建设求职简历
  • 能打开任何网站浏览器下载岫岩做网站
  • 网站自适应 常用尺寸游戏推广员判几年
  • 外贸网站推广哪家好大连设计工作室
  • 手机开源网站代码wordpress迁移到thinkphp
  • 企业网络管理 网站开发与运营建筑工程入门基础知识
  • 网站优怎么做图片网站模版
  • 深圳小企业网站建设设计制作金融投资公司网站模板
  • 深圳做微信网站建购物网站需要些什么
  • 怎么做卖保险的网站长沙网站微信开发
  • 网站开发和广告制作wordpress权限插件