
力扣每日一题
2024年9月开始记录力扣每日一题的刷题记录
Lily_Mei
I'm trying, at least.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
每日一题|3258. 统计满足 K 约束的子字符串数量 I|滑动窗口
数据量不大,枚举直接拿下。原创 2024-11-12 00:57:27 · 256 阅读 · 0 评论 -
每日一题|540.有序数组中的单一元素|二分查找、异或操作
无视“有序”这个条件,同之前对于无序数组中存在的唯一元素一样。直接对全部数字和0取异或操作。好处是代码比较简洁。坏处是因为没有用到“有序”的条件,所以代码的时间是O(n)。原创 2024-11-10 23:20:36 · 272 阅读 · 0 评论 -
每日一题|3235.判断矩形的两个角落是否可达|几何关系、深度优先搜索
。原创 2024-11-08 13:57:05 · 427 阅读 · 0 评论 -
每日一题|3255. 长度为 K 的子数组的能量值 II|递增序列、计数器
同昨天的解法一样,遍历一遍的同时,统计当前最长的子串长度,如果>=k,则将子串开始位置处赋值子串当前位置元素的值。需要注意的是计数器的初始化,应该是0而不是1,因为还没有开始统计。0位置的计数器会在else被赋值为1。原创 2024-11-07 01:51:10 · 243 阅读 · 0 评论 -
每日一题|3254. 长度为 K 的子数组的能量值 I|子数组、统计长度
这个解法直接模拟了全部的运算。时间O(n * k)空间O(1)原创 2024-11-06 01:23:55 · 184 阅读 · 0 评论 -
每日一题|3222. 求出硬币游戏的赢家|配凑、轮换更新
因为双方都是遵循最优化。所以。那么只要还保留一组,就能够进行下一轮。原创 2024-11-05 14:42:00 · 280 阅读 · 0 评论 -
633. 平方数之和|暴力枚举、双指针
让a从0遍历到int(c+ 1),同时计算每一个a时刻下的b,判断其是否是整数。Time: O(c) Space: O(1) 原地操作。原创 2024-11-04 14:08:02 · 237 阅读 · 0 评论 -
3226. 使两个整数相等的位更改次数|位运算
count + 1不可实现继续右移1位。原创 2024-11-02 14:29:17 · 384 阅读 · 0 评论 -
每日一题|3185. 构成整天的下标对数目 II|数组取代hash
本题是简单版的,数据量不大,可以暴力。原创 2024-10-22 16:47:32 · 320 阅读 · 0 评论 -
每日一题|1497. 检查数组对是否可以被 k 整除|两数之和的模运算
所以用any对整个数组进行检查,如果有不满足的之间返回False。那么,如果该数组满足要求,对k取模为m1的数字个数必然。取模,等于每个数字分别对k取模的和。最后再检查取模为0的个数是否是偶数,对k取模为m2的数字个数。原创 2024-10-22 16:05:33 · 298 阅读 · 0 评论 -
每日一题|910.最小差值II|数组排序思路、单调性
前一个部分增加k,后一个部分减小k。我们思考更新后的数组的最大、最小值来自哪里。把当前的排序后的数组分成两个部分,i以前的部分是较小值,显然,较小的值增加,较大的值减小,能够得到较小的差值。因为i以后的值都减小k,不可能比原最大值-k还要大。所以,只需要遍历一次nums,就可以得到最小的差值。新的最大值只能来自原数组的。原创 2024-10-21 23:50:01 · 196 阅读 · 0 评论 -
每日一题|1436. 旅行终点站|哈希、集合
由于path[0]表示出发点,path[1]表示到达点,所以利用集合,,得到的就是“只出不进”的那一个终点(题目保证了终点的唯一性)。分析:找到唯一的一个只有到达,没有走出的元素。先收集全部的到达点,然后弹出全部的出发点。原创 2024-10-08 16:35:03 · 249 阅读 · 0 评论 -
每日一题|871. 最低加油次数|动态规划、内层逆序遍历
dp[i]是一个一维数组,表示加油i次后,能够行驶的最大距离。原创 2024-10-07 16:46:48 · 272 阅读 · 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 · 263 阅读 · 0 评论 -
每日一题|983. 最低票价|动态规划、记忆化递归
本题求解最小值,思路是动态规划,但是遇到的问题是:动态规划更新的顺序和步长,以及可能存在的递归溢出问题。原创 2024-10-01 11:24:41 · 297 阅读 · 0 评论 -
每日一题|1928. 规定时间内到达终点的最小花费|动态规划、最小路径
在时刻t,位置i处,此时的花费可以表示为如下的形式:注意到道路是双向的,也就是i和j可以互换位置,所以在后面遍历的时候需要更新两个值。原创 2024-10-03 17:44:38 · 229 阅读 · 0 评论 -
每日一题|1845. 座位预约管理系统|最小堆操作、优先队列
综上使用优先队列是比较好的选择,对于python,优先队列可以使用一个最小堆来维护,所以是heapq包内的操作,代码量很小。3、高频操作100,000次使用。1、 从一个队列中弹出最小值;2、在一个队列中加入一个值;原创 2024-09-30 13:29:35 · 223 阅读 · 0 评论 -
每日一题|2073. 买票需要的时间|循环数组、下标分类
那么,对于k之前的人,他们会在k买完票之前和k一样排到队首的机会,所以最多能够买ticket[k]的票,自身需要买ticket[i],所以在二者之间取最小值。同时,k买的恰好是ticket[k]张票,所以两个可以合并成一个情况。所以,一个更直接的想法是,在第k个人买完时,每个人分别都花了多少时间?从头到尾遍历全部的ticket,将每人的时间累积,得到最终结果。本题的数据范围比较大,如果是直接模拟的话会超时。,所以最多能买ticket[k] - 1张票。也就是,求出买票循环结束前每个人所花的时间。原创 2024-09-29 16:24:13 · 241 阅读 · 0 评论 -
每日一题|2516. 每种字符至少取 K 个|双指针、最长子串、字典
本题需要转化求解目标。对于一个序列,两头收集的最少数量的时候,剩下的部分(我们称之为子串)就会对应的越长。也就是说,我们只要求解一个满足要求的最长子串,使得两边剩余的字符数量刚好满足要求。由于题目需要分别记录固定字符的个数,采用字典进行计算。原创 2024-09-27 20:19:55 · 327 阅读 · 0 评论 -
每日一题|2535. 数组元素和与数字和的绝对差|数位运算
先加后减就是对于每一个数字之间完成该数字的值-数位和,然后再去下一个数字。特别的,对于小于10的数字,减自身就是0,没必要计算,可以跳过。先加后减,可以剪枝。原创 2024-09-26 20:15:05 · 242 阅读 · 0 评论 -
每日一题|2555. 两个线段获得的最多奖品|动态规划、二分法
dp[i]定义为在物品[i]处,有一条长度为k的、右端点不超过i所在位置的线段所能够覆盖的最大奖品数,注意这里不一定要让线段的右端点是i的位置。原创 2024-09-12 00:02:03 · 333 阅读 · 0 评论 -
每日一题|2306. 公司命名|哈希映射、集合运算
本题可以预想暴力解法是遍历整个数组,分别进行匹配,这样的复杂度是O(n^2),必然超时。所以想到如何进行时间上的简化。对于遍历进行求解,时间主要消耗在“模拟这个过程上”,也就是真的去匹配,而没有关注到题目让求解到仅仅是“数量”。也就是说,如果能够直接从数量上进行运算,将会很方便,也很高效。对于一个数组内的两个元素,strA和strB,交换它们的首字母后,对应的分别是pre_A + suf_B 和 pre_B + suf_A。原创 2024-09-25 21:20:46 · 211 阅读 · 0 评论