力扣每日一题
2024年9月开始记录力扣每日一题的刷题记录
Lily_Mei
I'm trying, at least.
展开
-
每日一题|1436. 旅行终点站|哈希、集合
由于path[0]表示出发点,path[1]表示到达点,所以利用集合,,得到的就是“只出不进”的那一个终点(题目保证了终点的唯一性)。分析:找到唯一的一个只有到达,没有走出的元素。先收集全部的到达点,然后弹出全部的出发点。原创 2024-10-08 16:35:03 · 200 阅读 · 0 评论 -
每日一题|871. 最低加油次数|动态规划、内层逆序遍历
dp[i]是一个一维数组,表示加油i次后,能够行驶的最大距离。原创 2024-10-07 16:46:48 · 228 阅读 · 0 评论 -
每日一题|2187. 完成旅途的最少时间|二分法、计数器
这里辅助函数checked在每一个t时刻,遍历所有的车辆行驶所需时间time, 统计总共能行驶的trips数量,并返回和totalTrips的比较结果。但是如果从1开始,结束在最不理想的情况是max(time) * totalTrip,在数据很大的时候很容易time out。随着t的增加,当前能够行驶的trip数量一定不减,所以是一个在有序数列中寻找最小的t的过程。本题的一个思路是从小到大遍历全部可能的t,并分别计算当前每一辆车所能够行驶的最多trips数量。所以不妨对每一个可能的t重新思考性质。原创 2024-10-05 15:19:22 · 177 阅读 · 0 评论 -
每日一题|983. 最低票价|动态规划、记忆化递归
本题求解最小值,思路是动态规划,但是遇到的问题是:动态规划更新的顺序和步长,以及可能存在的递归溢出问题。原创 2024-10-01 11:24:41 · 239 阅读 · 0 评论 -
每日一题|1928. 规定时间内到达终点的最小花费|动态规划、最小路径
在时刻t,位置i处,此时的花费可以表示为如下的形式:注意到道路是双向的,也就是i和j可以互换位置,所以在后面遍历的时候需要更新两个值。原创 2024-10-03 17:44:38 · 193 阅读 · 0 评论 -
每日一题|1845. 座位预约管理系统|最小堆操作、优先队列
综上使用优先队列是比较好的选择,对于python,优先队列可以使用一个最小堆来维护,所以是heapq包内的操作,代码量很小。3、高频操作100,000次使用。1、 从一个队列中弹出最小值;2、在一个队列中加入一个值;原创 2024-09-30 13:29:35 · 175 阅读 · 0 评论 -
每日一题|2073. 买票需要的时间|循环数组、下标分类
那么,对于k之前的人,他们会在k买完票之前和k一样排到队首的机会,所以最多能够买ticket[k]的票,自身需要买ticket[i],所以在二者之间取最小值。同时,k买的恰好是ticket[k]张票,所以两个可以合并成一个情况。所以,一个更直接的想法是,在第k个人买完时,每个人分别都花了多少时间?从头到尾遍历全部的ticket,将每人的时间累积,得到最终结果。本题的数据范围比较大,如果是直接模拟的话会超时。,所以最多能买ticket[k] - 1张票。也就是,求出买票循环结束前每个人所花的时间。原创 2024-09-29 16:24:13 · 195 阅读 · 0 评论 -
每日一题|2516. 每种字符至少取 K 个|双指针、最长子串、字典
本题需要转化求解目标。对于一个序列,两头收集的最少数量的时候,剩下的部分(我们称之为子串)就会对应的越长。也就是说,我们只要求解一个满足要求的最长子串,使得两边剩余的字符数量刚好满足要求。由于题目需要分别记录固定字符的个数,采用字典进行计算。原创 2024-09-27 20:19:55 · 289 阅读 · 0 评论 -
每日一题|2535. 数组元素和与数字和的绝对差|数位运算
先加后减就是对于每一个数字之间完成该数字的值-数位和,然后再去下一个数字。特别的,对于小于10的数字,减自身就是0,没必要计算,可以跳过。先加后减,可以剪枝。原创 2024-09-26 20:15:05 · 209 阅读 · 0 评论 -
每日一题|2555. 两个线段获得的最多奖品|动态规划、二分法
dp[i]定义为在物品[i]处,有一条长度为k的、右端点不超过i所在位置的线段所能够覆盖的最大奖品数,注意这里不一定要让线段的右端点是i的位置。原创 2024-09-12 00:02:03 · 269 阅读 · 0 评论 -
每日一题|2306. 公司命名|哈希映射、集合运算
本题可以预想暴力解法是遍历整个数组,分别进行匹配,这样的复杂度是O(n^2),必然超时。所以想到如何进行时间上的简化。对于遍历进行求解,时间主要消耗在“模拟这个过程上”,也就是真的去匹配,而没有关注到题目让求解到仅仅是“数量”。也就是说,如果能够直接从数量上进行运算,将会很方便,也很高效。对于一个数组内的两个元素,strA和strB,交换它们的首字母后,对应的分别是pre_A + suf_B 和 pre_B + suf_A。原创 2024-09-25 21:20:46 · 178 阅读 · 0 评论