- 博客(19)
- 收藏
- 关注
原创 LeetCode383 赎金信 - Python中Counter在加减法和比较时的使用
查看定义可知:Counter 是 collections 模块的一个类,用于统计可哈希对象的出现次数。它的实例可以看作是一个字典,其中键是元素,值是元素的计数。中的对应元素的计数,如果满足返回True,否则返回False。实例相减时,会将相同键的值相减,但如果某个键的结果为负数,则该键会被移除。实例相加时,会将相同键的值相加,生成一个新的。注:LeetCode平台会自动导入常用的库,如。为空的(即False),那么原不等式成立。回到官方题解的代码,首先判断二者长度,如果。中的每个元素,确保它的计数不大于。
2024-10-18 17:16:07
360
原创 LeetCode15 三数之和 - “贪心+双指针: 基于”两数之和“的拓展题“
理解两数之和的思路之后,三数之和就很好处理了。同样地,我们先将原数组排序,方便后续处理可能存在的重复。同时注意到两数之和用到了一个target 变量,这正好可以用于三数之和的第三个数。注:l 只能右移,r 只能左移。
2024-10-18 15:25:48
708
原创 Leetcode134 加油站 - 贪心!
—因为在 j+1 之后,我们只考虑了能不能跑完 j+1~len-1 这部分,而没有管在 len-1 之后还能不能跑完 0~j 这部分。那么这个 ans 一定能跑完全程了,而这正是结合:排除法+一定存在解的结论得出的解了!于是延续第二种情况中得出的结论,从 0~j 中任意一点出发都是无法跑完全程的(边界条件 j=len-1 时即循环的最后一次时跑不回起点),那么如果答案存在,就一定在 j+1~len-1 中。于是令 ans=j+1, curGas=0,继续从 j+1 开始枚举。最终不出意外TLE。
2024-09-28 15:00:55
1065
1
原创 LeetCode2376 统计特殊整数 - 排列组合
一个 flag 表示 n 的第 flag 位(0~len-1)第一次出现(从高位往低位看)重复的数字,那么前 flag 位固定后之后的计算就无效了。(举个例子,65535 的 flag=2,那么就不用再讨论 65500~65535 的所有数字了)如果 n 中不存在重复数字,我们就令。第二个 f[11] 数组,f[i] 初始值为0,f[i]=1 表示数字 i 在 n 中出现了。我们特殊处理了 k=0 的最高位,然后从 k=1 枚举到flag位。例如数字 65535,第 0~4 位分别为 6、5、5、3、5。
2024-09-20 23:03:20
789
原创 AcWing 1114棋盘问题 DFS(+排列组合)
题目如下:在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放 k 个棋子的所有可行的摆放方案数目 C。
2024-04-05 11:31:40
600
1
原创 洛谷P1683-入门 利用 dfs(递推)实现
ps:我没有看过其他题解,只跟着一位 up (后面给了up的链接)从0开始入门dfs,这个思路我认为肯定有人已经发过了,但我还是希望分享一下做题时的思考。误打误撞学 dfs 时用 递推关系式做出来了。
2024-04-02 20:39:04
1972
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人