
LeetCode刷题
文章平均质量分 81
刷题实录~
魔术师的徒弟
The misery
展开
-
基于珂朵莉树思想的区间合并算法
补题时遇到的数据结构原创 2022-05-30 20:15:35 · 355 阅读 · 1 评论 -
0-1BFS算法求最短距离
补周赛题时遇到的算法原创 2022-05-30 19:17:46 · 790 阅读 · 0 评论 -
LeetCode第290场周赛前四题题解
- 本人的LeetCode账号:魔术师的徒弟,欢迎关注获取每日一题题解,快来一起刷题呀~本人Gitee账号:路由器,欢迎关注获取博客内容源码。文章目录一、多个数组求交集二、统计圆内格点数目三、统计包含每个点的矩形数目四、花期内花的数目五、扯淡一、多个数组求交集6041. 多个数组求交集 因为数组中所有元素互不相同,所以我们可以把每个元素出现的次数统计到一个哈希表中,然后出现次数为n(n是二维数组nums的一位数组个数),因为答案要求升序排列返回,所以我们可以用map<int, int原创 2022-04-24 14:35:51 · 1390 阅读 · 6 评论 -
LCP春季赛个人赛前3题题解
力扣杯编程大赛春季赛个人赛前三题题解原创 2022-04-18 12:55:45 · 374 阅读 · 0 评论 -
LeetCode第76场双周赛前四题题解
有机会AK的一场,然而不会脑筋急转弯。原创 2022-04-18 12:31:03 · 1121 阅读 · 0 评论 -
LeetCode第288场周赛前3题题解(堆的使用)
- 本人的LeetCode账号:魔术师的徒弟,欢迎关注获取每日一题题解,快来一起刷题呀~本人Gitee账号:路由器,欢迎关注获取博客内容源码。文章目录一、按奇偶性交换后的最大数字二、向表达式添加括号后的最小结果三、K 次增加后的最大乘积四、扯淡一、按奇偶性交换后的最大数字6037. 按奇偶性交换后的最大数字 本题的思路比较直接,我们先把数组转成字符串s,然后把它的奇数项和偶数项分别放到不同的数组中,然后排序,然后遍历一遍s,如果遇到奇数,就把排好序的奇数数组的最后一位加上,然后奇数数组指针原创 2022-04-10 20:59:16 · 623 阅读 · 11 评论 -
LeetCode第75场双周赛前三题题解
力扣第75场双周赛前三题题解原创 2022-04-03 16:29:13 · 858 阅读 · 2 评论 -
LeetCode第287场周赛前四题题解(函数类二分的练习)
周赛总结原创 2022-04-03 15:27:45 · 577 阅读 · 11 评论 -
C++位运算实现补码加法(异或被称为不进位加法的原因)
位运算积累原创 2022-04-01 16:26:43 · 1806 阅读 · 0 评论 -
搜索与图论3—最小生成树问题(prim算法、Kruskal算法)和二分图问题(染色法、匈牙利算法)
母鸡哇啦路飞!原创 2022-03-18 17:58:51 · 774 阅读 · 1 评论 -
搜索与图论1—深搜、宽搜、拓扑排序
海的那边,到底是什么呢?原创 2022-03-05 14:23:31 · 848 阅读 · 0 评论 -
LeetCode双指针算法总结1
双指针算法是一类依靠单调性来去除结果的算法。原创 2022-03-04 20:22:40 · 657 阅读 · 0 评论 -
高精度乘法的两种实现方式
高精度乘法原创 2022-02-27 18:42:00 · 933 阅读 · 0 评论 -
LeetCode1994. 好子集的数目—状压DP
状态压缩dp原创 2022-02-22 16:46:06 · 467 阅读 · 0 评论 -
LeetCode838. 推多米诺—开学第一天的LeetCode每日一题= =
gogogo原创 2022-02-21 10:46:08 · 243 阅读 · 0 评论 -
一种类选择排序:煎饼排序
煎饼排序原创 2022-02-19 13:57:45 · 347 阅读 · 0 评论 -
一道情人节的二分题
哦 情人节还有这种每日一题 我马上举报原创 2022-02-14 15:22:53 · 319 阅读 · 0 评论 -
DFS和BFS经典例题总结1
踏歌而行八荒路 物我两往九逍遥 芒鞋斗笠千年走 万古长空一朝游原创 2022-02-10 23:55:41 · 2671 阅读 · 0 评论 -
贪心算法经典例题总结1
文章目录一、贪心算法思想二、买卖股票的最佳时机II二、买卖股票的最佳时机含手续费三、跳跃游戏II四、零钱找零五、多机调度问题六、活动选择七、最多可以参加的会议数目八、无重叠区间一、贪心算法思想 贪心算法的思想就是将问题分解为一个一个的子问题,对每个子问题都去取在子问题条件下的最优解,然后把这些解组合到一起即为贪心算法的解。 从贪心算法思想的描述就能看出,这种算法很难保证自己的解就是问题的最优解,因为最优解对应的子结构可能不都是最优的,这时便无法使用贪心算法。 由于这个问题,贪心算法的应用场景相原创 2022-02-08 15:41:47 · 2995 阅读 · 1 评论 -
LeetCode股票抛售时机类题目的动态规划模板
小天使请安原创 2022-02-02 22:08:27 · 826 阅读 · 1 评论 -
LeetCode115. 不同的子序列——字符串类动态规划
一、正向动态规划及其优化class Solution {public: int numDistinct(string s, string t) { /* 定义f(i,j)为s串的前i个字符的子序列中t的前j个字符出现的个数 对新增进来的第i个字符, 1.可以选择让他拼凑t的第j个字符(如果s[i - 1] == t[j - 1]) 这样就让s串的前i-1个字符只要拼凑t串的前j-1个字符就行 拼凑的方法原创 2022-02-02 21:57:46 · 707 阅读 · 0 评论 -
LeetCode1171. 从链表中删去总和值为零的连续节点
题目概述:链接:点我做题题解一、暴力解法 如果要遍历到每一组求和等于0的连续结点,可以从每个结点出发,遍历它的后缀和,如果它的后缀和等于0了,说明当前遍历的起始结点到令后缀和等于0的这些结点是一组求和等于0的连续结点,应当删除掉,但是不要delete,因为经过测试如果delete掉头结点后Leetcode会报错,猜测可能和Leetcode的测试用例的链表实现有关系,所以删除掉的方法就是cur->next = search->next,这里cur是起始结点的前一个结点,search是使原创 2022-02-02 21:41:35 · 1223 阅读 · 0 评论 -
LeetCode33. 搜索旋转排序数组
题目概述链接:点我做题题解一、找到翻转的点 因为翻转后两边都是部分有序的,都是满足前一个元素比后一个元素小的,当出现前一个元素比后一个元素大的时候说明出现了翻转点,我们知道这个反转的结果是把原本一团小的有序的数组放到了后面,因此找到反转点后,这个翻转点的元素就是有序数组中最大的元素,如果目标元素比它大,就可以直接返回-1了,否则比较一下这个元素和前面这个有序数组中最小的元素的大小,如果比前面这个有序数组中最小的元素小,就二分查找前面这个有序数组,如果比前面这个有序数组大,就二分查找反转点后的那个原创 2022-02-02 21:20:49 · 867 阅读 · 0 评论 -
LeetCode132. 分割回文串 II—字符串动态规划
小天使请安原创 2022-01-30 21:56:14 · 995 阅读 · 0 评论 -
LeetCode72. 编辑距离—字符串类动态规划
✟升天✟原创 2022-01-30 21:07:27 · 995 阅读 · 0 评论 -
LeetCode120. 三角形最小路径和—两种动态规划思路与实现
小天使请安原创 2022-01-30 13:33:22 · 1158 阅读 · 1 评论 -
快速幂算法及其在动态规划中的应用(矩阵幂)
小天使请安原创 2022-01-29 18:29:37 · 1220 阅读 · 1 评论 -
LeetCode2147. 分隔长廊的方案数
题目概述题解 这个题需要多看图,仔细看图会发现你只能在第2i2i2i个椅子和第2i+12i+12i+1个椅子之间摆放屏风(i=1,2,3,...i = 1,2,3,...i=1,2,3,...),其他位置都不能摆放屏风,因为其他位置在上一个屏风到这个位置之前的椅子数不够2个。 那既然只能在第2i2i2i个椅子和第2i+12i+12i+1个椅子之间摆放屏风,那么两个位置之间摆放屏风的方法数就是第2i+12i + 12i+1个椅子的下标和第2i2i2i个椅子的下标之差,然后根据乘法原理,把这些第2个原创 2022-01-24 23:34:05 · 356 阅读 · 0 评论 -
LeetCode198. 打家劫舍——动态规划
class Solution {public: int rob(vector<int>& nums) { int size = nums.size(); if (size == 1) { return nums[0]; } if (size == 2) { return max(nums[0], nums[1]);原创 2022-01-24 21:50:02 · 426 阅读 · 0 评论 -
LeetCode64. 最小路径和
坐标型动态规划及优化其复杂度原创 2022-01-21 13:16:53 · 340 阅读 · 0 评论 -
LeetCode 91.解码方法——动态规划
题目概述:题解 这个题其实建立动态规划的指标比较容易,很容易想到就是以第i个字符为结尾的解码方法数,但是难想的是状态转移方程,这里定义f(i)f(i)f(i)为以第i个字符结尾时的解码方法数。 注意到一个新的字符加入前面的串后,有两种解码方式:一种是自己作为一个单独的字符解析,然后前面保留原来的解析方式,这种解码的要求是字符s[i−1]s[i - 1]s[i−1]可以单独解析,也就是说s[i−1]!=′0′s[i-1] != '0's[i−1]!=′0′,这种情况下,解码方法数就等于f(i−1)原创 2022-01-20 22:14:54 · 618 阅读 · 0 评论 -
剑指 Offer II 091. 粉刷房子——动态规划
题目概述:题目链接:点我做题题解: 本题的难点在于建立出合适的动态规划模型。 仔细想一想,本题求得是最终的最小费用,给的规则是相邻的两个房子不能涂成一样的颜色,注意到当前房子如果涂成红色,那么前面的房子就必须涂成蓝色或绿色。 我们对下标为i的房子图不同的颜色,0 i0~i0 i的房子的涂色方案也要发生变化, 因此我们可以对下标为i的房子建立一个向量s[i]⃗=(s0[i],s1[i],s2[i])\vec{s[i]}=(s_0[i],s_1[i],s_2[i])s[原创 2022-01-20 20:47:53 · 388 阅读 · 0 评论 -
LeetCode63. 不同路径 II——动态规划
LeetCode63. 不同路径 II——动态规划原创 2022-01-19 14:08:00 · 406 阅读 · 0 评论 -
LeetCode219. 存在重复元素 II
LeetCode219. 存在重复元素 II原创 2022-01-19 11:17:11 · 477 阅读 · 0 评论 -
LeetCode539. 最小时间差
LeetCode539. 最小时间差原创 2022-01-19 00:08:01 · 196 阅读 · 0 评论 -
LeetCode62. 不同路径
LeetCode62. 不同路径原创 2022-01-18 23:58:42 · 546 阅读 · 0 评论 -
LeetCode55. 跳跃游戏的两种解法:动态规划和贪心算法
LeetCode55. 跳跃游戏的两种解法:动态规划和贪心算法原创 2022-01-18 22:45:39 · 3270 阅读 · 0 评论 -
LeetCode1220. 统计元音字母序列的数目—动态规划法和矩阵幂表示
LeetCode1220. 统计元音字母序列的数目—动态规划法和矩阵幂表示原创 2022-01-17 14:12:01 · 346 阅读 · 0 评论 -
LeetCode322. 零钱兑换—缓存优化递归和直接动态规划
LeetCode322. 零钱兑换—缓存优化递归和直接动态规划原创 2022-01-17 12:29:25 · 283 阅读 · 0 评论 -
LeetCode384. 打乱数组的两种解法:蓄水池抽样和洗牌算法
LeetCode384. 打乱数组的两种解法:蓄水池抽样和洗牌算法原创 2022-01-16 14:04:32 · 430 阅读 · 0 评论