2025-01-05 00:00:00
题目链接:732. 我的日程安排表 III
LC729. 我的日程安排表 I、LC731. 我的日程安排表 II、LC732. 我的日程安排表 III 三题基本差不多。由于先写的 732,当时写了线段树,所以这三题都用线段树写了。标准区间查询和区间修改题目。
1 |
class MyCalendarThree: |
2025-01-05 00:00:00
题目链接:
LC729. 我的日程安排表 I、LC731. 我的日程安排表 II、LC732. 我的日程安排表 III 三题基本差不多。由于先写的 732,当时写了线段树,所以这三题都用线段树写了。标准区间查询和区间修改题目。
1 |
class MyCalendarTwo: |
2025-01-05 00:00:00
题目链接:729. 我的日程安排表 I
LC729. 我的日程安排表 I、LC731. 我的日程安排表 II、LC732. 我的日程安排表 III 三题基本差不多。由于先写的 732,当时写了线段树,所以这三题都用线段树写了。标准区间查询和区间修改题目。
数据量比较小,也可以直接双重 for 循环求解。
1 |
class MyCalendar: |
2025-01-05 00:00:00
题目链接:LC2241. 设计一个 ATM 机器 2241. 设计一个 ATM 机器
按题意模拟,可能写的有点复杂了。。。
1 |
class ATM: |
2025-01-01 00:00:00
题目链接:3280. 将日期转换为二进制表示
Python 基础语法题,leetcode 官方新年第一天的温柔。
1 |
class Solution: |
2025-01-01 00:00:00
链接: 3219. 切蛋糕的最小总开销 II - 力扣(LeetCode)
贪心半天,最后还是看了题解,只差一层窗户纸,还是要独立自己写。
解题比较关键的一点是,逆向思考,从 n*m 块小蛋糕最终合并成一个大蛋糕。问题变成水平合并 m-1 次,垂直合并 n-1 次。为了结果最小,刚开始应该先合并开销小的。
假设水平当前已经合并到 i,垂直已经合并到 j,分别开销是 horizontalCut[i]*(n-j)
和 verticalCut[j]*(m-i)
。
horizontalCut[i]
和 verticalCut[j]
,这样下一步开销会减小的更多。horizontalCut[i]
和 verticalCut[j]
之间最小的即可,这样才是下一步开销减小最多的。1 |
class Solution: |