![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode刷题笔记
记录个人每天刷题内容和心得
EthenPhelps
这个作者很懒,什么都没留下…
展开
-
leetcode刷题笔记-概要
主要内容每天刷两道题目,一道打卡题和一道hard难度题目记录题目题解心得标题标记算法内容,不标记题目名称只标记编号目录原创 2021-04-23 09:42:07 · 46 阅读 · 0 评论 -
leetcode刷题笔记-1163-SAM板子/双指针
题目链接:https://leetcode-cn.com/problems/last-substring-in-lexicographical-order/题意给出一个字符串,求其字典序最大的子串n<=105n<=10^5n<=105题解解法1:直接构建后缀自动机/后缀数组,直接跑即可,复杂度O(n∗26)O(n*26)O(n∗26)解法2:考虑到只需要对比所有后缀,其实就是后缀排序,但只需要找到最大值,所以用双指针枚举后缀,因为长的子串在一直相同的情况一定比短的子串大,所原创 2021-05-07 10:01:23 · 124 阅读 · 0 评论 -
leetcode刷题笔记-906-枚举+思维
题目链接:https://leetcode-cn.com/problems/super-palindromes/题意给出L,RL,RL,R,求在[L,R][L,R][L,R]中是某个回文数的平方的回文数的个数L,R≤1018L,R\leq 10^{18}L,R≤1018题解考虑枚举根号以后的数,这个枚举是1e9的,但因为这个数也是回文数,所以可以枚举前面一半,后面一半复制即可,这样枚举就是1e5的了codepy代码,py大法好,但跑得很慢竞赛慎用class Solution: def原创 2021-05-07 09:22:39 · 103 阅读 · 0 评论 -
leetcode刷题笔记-403-dp
题目链接:https://leetcode-cn.com/problems/frog-jump/题意有n个石头排一行,每个石头位置按升序给出,一开始在石头0位置,需要跳到石头n-1位置,一开始只能跳1距离,上次跳了k距离则这次只能跳k-1,k,k+1距离,只能往后跳,询问是否能跳到n-1位置题解使用dp求解dp[i]表示对于i位置可以往后跳的距离集合dp[i]表示对于i位置可以往后跳的距离集合dp[i]表示对于i位置可以往后跳的距离集合每次就枚举后面的值进行跳转,或者枚举集合里面的值进行跳转,转原创 2021-04-29 22:32:02 · 60 阅读 · 0 评论 -
leetcode刷题笔记-1610-计算几何基础,极角排序
题目链接:https://leetcode-cn.com/problems/maximum-number-of-visible-points/题意平面上有n个点,你从一个固定点去观察,视野角度是angle,求最多同时观察到多少个点,点不会被其它点遮挡题解将所有点极角排序,然后复制双倍数组处理循环,枚举左端点滑动窗口维护右端点即可复杂度O(nlogn)O(nlogn)O(nlogn),主要复杂度在排序注意特判和原点重合的点codeclass Solution{public: int原创 2021-04-28 11:43:33 · 115 阅读 · 0 评论 -
leetcode刷题笔记-1808-数学+快速幂
题目链接:https://leetcode-cn.com/problems/maximize-number-of-nice-divisors/题意给定一个n=primeFactor求若干个正整数t1,t2,t3,...,tkt_1,t_2,t_3,...,t_kt1,t2,t3,...,tk使得t1+t2+t3+...+tk=nt_1+t_2+t_3+...+t_k=nt1+t2+t3+...+tk=n且令t1t2t3...tkt_1t_2t_3...t_kt1t2t3...tk原创 2021-04-27 09:57:39 · 61 阅读 · 0 评论 -
leetcode刷题笔记-LCP24-set维护中位数
题目链接:https://leetcode-cn.com/problems/5TxKeK/submissions/题意给定一个n长度数组,求对于每个1≤i≤n1\leq i\leq n1≤i≤n将初始数组0到i−1位变成x,x+1,x+2,...x+i0到i-1位变成x,x+1,x+2,...x+i0到i−1位变成x,x+1,x+2,...x+i的最小操作数,每次操作可以将数组的某一位+1或-1题解考虑一开始以第一位为基准然后所有数值减小nums[0]+inums[0]+inums[0]+i,现在题原创 2021-04-26 20:18:30 · 205 阅读 · 0 评论 -
leetcode刷题笔记-LCP09-bfs/dp
题目链接:https://leetcode-cn.com/problems/zui-xiao-tiao-yue-ci-shu/题意有一排n个点,每个点有一个转移长度jump[i],表示从i点可转移到i+jump[i]i+jump[i]i+jump[i]点,或者可以转移到i前面的所有点,问从0号点转移到n或n后面的点需要至少多少次转移题解直接bfs维护0到当前点的最小距离即可,往前可以直接搜索,往后的搜索有单调性,一旦1到x被回退更新过就不可能再次更新,所以维护一个last表示1到last-1都被更新原创 2021-04-26 12:13:47 · 65 阅读 · 0 评论 -
leetcode刷题笔记-149-计算几何基础题
题目链接:https://leetcode-cn.com/problems/max-points-on-a-line/题意给定平面上的n个点,求最多点共线的点数题解对于两个点构成的直线可以用方向向量gcd表示以避免斜率误差,枚举两点形成直线,然后枚举所有其它点判断可以解,复杂度O(n3)O(n^3)O(n3)也可以枚举一个点,然后求该点到所有点的方向向量然后map保存来求最大数目的相同向量,时间可以压缩到O(n2)/O(n2logn)O(n^2)/O(n^2logn)O(n2)/O(n2logn)原创 2021-04-26 11:09:08 · 216 阅读 · 0 评论 -
leetcode刷题笔记-897-二叉树遍历
题目链接:https://leetcode-cn.com/problems/increasing-order-search-tree/题意给出一个二叉搜索树,求将里面的数值全部取出并按顺序构成一条往右的链的一个树题解直接中序遍历得到序列,然后插入即可codedef dfs(v: TreeNode) -> list: if not v: return [] res = dfs(v.left) res.append(v.val) res = re原创 2021-04-25 14:19:58 · 88 阅读 · 0 评论 -
leetcode周赛238-题解
A.K进制各位数字总和签到题,直接模k转化即可(py代码)class Solution: def sumBase(self, n: int, k: int) -> int: sum = 0 while n > 0: sum += n % k n //= k return sumB.最高元素频数排序后考虑所有区间右端点,求出能全部数值改成右端点数值的左端点的最小值显然随着右端点的原创 2021-04-25 13:13:40 · 100 阅读 · 1 评论 -
leetcode刷题笔记-1044-二分哈希/后缀数组SA/后缀自动机SAM
题目链接:https://leetcode-cn.com/problems/longest-duplicate-substring/题意给定一个字符串,求该字符串的一个出现次数大于1次的最长子串题解链接解法0:二分+哈希,细节很多,不推荐使用,但思路简单,即二分答案长度,然后哈希判断是否存在重复解法1:后缀数组,需要对height求解过程有一定理解,一边求解一边得到答案,标准LCP板子题,最长的重复子串即最长的公共前缀解法2:后缀自动机,重复次数即每个状态后缀链接树所在子树的size,直接维护原创 2021-04-24 20:09:59 · 271 阅读 · 0 评论 -
leetcode刷题笔记-377-类背包dp
题目链接:https://leetcode-cn.com/problems/combination-sum-iv/题意给出一个集合,求集合里面的若干数的和为给定数值的方案数,每个数可以多次选取,不同的选取顺序视作不同方案题解不考虑顺序就是标准的完全背包dp,但由于顺序问题这道题转化为图论解法,每个点连一条i到i+j(j in nums)的边,然后从头往后dp即可,复杂度n*t使用c++注意,虽然题目保证了答案不会超过int范围,但dp过程中的值可能超过int,甚至超过ll,建议使用ull或取模处理原创 2021-04-24 19:21:27 · 58 阅读 · 0 评论 -
leetcode刷题笔记-420-字符串思维题
题目链接:https://leetcode-cn.com/problems/strong-password-checker/题意一个强密码应满足以下所有条件:1.由至少6个,至多20个字符组成。2.至少包含一个小写字母,一个大写字母,和一个数字。3.同一字符不能连续出现三次 (比如 “…aaa…” 是不允许的, 但是 “…aa…a…” 是可以的)。求要将 s 修改为满足强密码条件的字符串所需要进行修改的最小步数。修改包括删除、替换和增加一个字符题解设缺失类型数目为cncncn当n<原创 2021-04-23 11:58:12 · 209 阅读 · 0 评论 -
leetcode刷题笔记-LCP31-dp+思维
题目链接:https://leetcode-cn.com/problems/Db3wC1/题目大意给出一个NMT的图,有障碍物和道路,一共有T个时刻,每个时刻图会变成对应时刻的样子,每个时刻可以往相邻的格子走一步或停留,问是否能在T时刻内从左上方走到右下方可以选择一个障碍物消除一个时刻,以及选择一个位置的障碍物永久消除题解永久消除说明可能多次经过该点,与停留在该点等价dp[t][x][y][p1][p2]表示t时刻,在位置(x,y)dp[t][x][y][p1][p2]表示t时刻,在位置(x,y原创 2021-04-23 10:00:13 · 82 阅读 · 0 评论