【LeetCode】每日一题 2024_9_30 座位预约管理系统(堆)

news/2024/12/22 2:08:50/

前言

每天和你一起刷 LeetCode 每日一题~

LeetCode 启动!

题目:leetcode.cn/problems/seat-reservation-manager/description/?envType=daily-question&envId=2024-09-30" rel="nofollow">座位预约管理系统

代码与解题思路

type SeatManager struct {sort.IntSlice // 默认最小堆
}// 非常常规的一道堆的题目,建一个最小堆
func Constructor(n int) SeatManager {m := SeatManager{make([]int, n)}for i := range m.IntSlice {m.IntSlice[i] = i+1 // 座位号从 1 开始}return m
}// 返回最小编号的座位(把堆顶出堆)
func (m *SeatManager) Reserve() int {return heap.Pop(m).(int)
}// 添加一个可预约座位,将 seatNumber 入堆
func (m *SeatManager) Unreserve(seatNumber int)  {heap.Push(m, seatNumber)
}func (m *SeatManager) Push(v any) { m.IntSlice = append(m.IntSlice, v.(int)) }
func (m *SeatManager) Pop() any { a := m.IntSlice; v := a[len(a)-1]; m.IntSlice = a[:len(a)-1]; return v }/*** Your SeatManager object will be instantiated and called as such:* obj := Constructor(n);* param_1 := obj.Reserve();* obj.Unreserve(seatNumber);*/

今天这道题可以说是非常常规了,只要是学过数据结构,学过堆/优先级队列(priority_queue)应该都能看出来,这里就不过多赘述了,注释也非常详细

但是,自从换上 Golang 后,每次写堆相关的题都是痛苦面具,因为 Golang 的堆非常麻烦,STL 比这玩意好用太多,但 . . . 来都来了,还是好好练习一下

今天这道题也算是可以当做 Golang 堆的一个简便实现的模版了

视频实况

【【LeetCode】每日一题 2024_9_30 座位预约管理系统(堆)】

每天进步一点点

可以和我刷一辈子的每日一题吗?
一题一题,积累起来就是一辈子。


http://www.ppmy.cn/news/1533896.html

相关文章

Spring Mvc 基础源码分析

一、onRefresh 初始化 在 Spring MVC 中,onRefresh 是 FrameworkServlet 类中的一个关键方法,负责在 Spring Web 应用的容器刷新时,初始化与 Web 相关的组件,包括加载和配置 DispatcherServlet。这一过程是 Spring MVC 启动和运行…

【已解决】【Hadoop】找到java环境路径

在 Hadoop 环境中,Java 环境路径通常指的是 Java 的安装目录,因为 Hadoop 是用 Java 编写的,并且需要 Java 运行时环境(JRE)或 Java 开发工具(JDK)来运行。以下是几种方法来找到 Java 环境路径&…

go channel的使用

channel是goroutine之间通信的管道,可以将值从一个goroutine发送到channel,另一个goroutine从channel接收到这些值。 Do not communicate by sharing memory; instead, share memory by communicating. 创建channel //无缓存channel ch : make(chan int…

通信工程学习:什么是NFS网络文件系统

NFS:网络文件系统 NFS(Network File System),即网络文件系统,是一种用于在计算机网络上共享文件的协议。它允许一个计算机系统通过网络将其文件和存储设备共享给其他计算机系统,使得这些系统可以像访问本地…

C++随心记

C随心记 C中的 CONST C中的const是表示不可修改 int main() {/* 对于变量而言 */// 不可修改的常量const int A 10;// 不可修改的指针指向const int* pointer_0 nullptr;int const* poniter_1 nullptr;// 不可修改指针指向的内容int* const poniter_2 nullptr; }const也…

中九无科研无竞赛保研经验帖——上交软院、中科大计算机、复旦工程硕、南大工程硕、浙大软件

本人bg: 学校:中九软件工程rk:夏令营5%,预推免3%(都是写的预估排名)六级:480, 四级:540科研:无竞赛:美赛M,以及水赛国三、省二若干 保研前期没有…

LeetCode题练习与总结:丑数--263

一、题目描述 丑数 就是只包含质因数 2、3 和 5 的正整数。 给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:n 6 输出:true 解释&#xff1…

航顺芯片HK32MCU受邀出席汽车芯片国产化与技术创新闭门研讨会

[中国,北京,2024年9月21日]近日,深圳市航顺芯片技术研发有限公司(以下简称“航顺芯片”)产品总监郑增忠受邀出席由中国设备管理协会新能源汽车产业发展促进中心主办的“汽车芯片国产化与技术创新闭门研讨会”。 会上航…