鱼C论坛

 找回密码
 立即注册
查看: 2280|回复: 7

【一道难题】

[复制链接]
发表于 2020-6-18 22:20:22 | 显示全部楼层
不会写python,可以提供一下我的思路。
需要编写两个类 `class Stack` 与 `class DinnerPlates`

  1. class Stack {
  2.     int pop();
  3.     void push();
  4.     bool is_full();
  5.     bool is_empty();
  6. }
复制代码

  1. class DinnerPlates {
  2.     map<int, Stack> buckets; // 虽然有无限个栈,但是在代码中,不能真有无限个,内存受不了,因此 key: >=0 stack 的编号, value: stack
  3.     int capacity,
  4. }
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-19 15:10:52 | 显示全部楼层
赚小钱 发表于 2020-6-18 22:20
不会写python,可以提供一下我的思路。
需要编写两个类 `class Stack` 与 `class DinnerPlates`

自己做了一下,原来还有时间要求。
我在 DinnerPlates  的数据结构中,添加了两个 Heap,元素为 stack 的 index。
一个在 Push 时使用,保存所有不满的stack的index,一个在 Pop 时使用,保存所有非空的stack 的index。
因为Push要求从左到右的顺序,所以,是一个最小堆。
Pop 要求从右到左的顺序,所以,是一个最大堆。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-13 03:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表