【力扣优质题目】
文章平均质量分 59
个人总结力扣质量极高的题目,建议多次练习。
Darius吴贺
这个作者很懒,什么都没留下…
展开
-
【力扣刷题】【1-50】【动态规划】32. 最长有效括号
32. 最长有效括号 1.动态规划 如果简单的暴力解法,时间复杂度为O(n3)是完成不了本题的数据量的,真正重要的解法是动态规划。 首先分析规划中的状态有哪些:只有两个,前括号(与后括号); 对于前括号结尾的状态,不难想到,前括号对于最终结果产生不了任何影响,因为括号的配对必须是以后括号为结尾。 因此我们需要分析的状态只有后括号出现的时刻。 某一位置i以后括号为结尾,对于状态转移方式进行一些分析: i-1位置上为前括号,说明此时产生了匹配,dp[i]在dp[i-2]的基础上多配对成功了一对:原创 2022-04-19 23:17:05 · 81 阅读 · 0 评论 -
【力扣刷题】2245. 转角路径的乘积中最多能有几个尾随零
2245. 转角路径的乘积中最多能有几个尾随零 本题注意尾随零的求法:求出所有乘数中因子2的个数a,因子5的个数b,a和b的最小值就是尾随零的个数。 思路:当一组数相乘时,尾随数的个数就是乘数中可以提取出10的个数; 如果要乘出一个10,有两种乘积方法:2乘5和1乘10,但1乘10本质上还可以再分解成1乘2乘5; 因此我们并不需要真的做乘法,本题大量的数据也不支持这么操作,而是需要统计所有出现过的乘数中,最多能组成多少对2和5; 为了解决这个问题,我们计算出每个位置的2和5的个数,再统计出每个位原创 2022-04-18 21:53:48 · 109 阅读 · 0 评论 -
【力扣刷题】【1-50】【快慢指针】31. 下一个排列
31. 下一个排列 1.寻找规律,构造算法 因为题目要求我们不使用额外空间,因此我们不能构造出所有序列并且排序,需要根据当前序列直接推断出结果。 如果没有见过这样的题目,直接设计出优秀算法难度是比较大的,可以直接学一下题解中的优秀方法。如果不好理解力扣题解的描述,可以看看我下面的分析: 本题需要我们根据构造序列的规律,构造出符合条件的序列。我们假设自己没见过任何相关算法,试着分析一下这个问题: 假设给出的数字是123654,我们要怎么写出下一个比它大的序列? 不难发现后面三个数字654是完全倒原创 2022-03-29 20:56:45 · 101 阅读 · 0 评论 -
【力扣刷题】【1-50】25. K 个一组翻转链表
25. K 个一组翻转链表 1.模拟交换 本题比较经典,建议多练习。如果是初学,建议在完成24. 两两交换链表中的节点,可以理解哑巴节点的作用,能理解链表操作的特性再练习。 本题和两两反转链表的原理是相同的,但是需要做到任意K个反转,并且在不足K个的时候以正常顺序返回不足K个的这一部分。 但是本题实现起来却有一定难度,这里提及解决链表问题的一个重要心得: 大量设变量,能有效降低分析复杂度 。 因为链表的结构,导致在解决问题时,会涉及大量的->的操作,往往在操作之后,原有的顺序结构发生了改变原创 2022-03-23 23:14:22 · 569 阅读 · 0 评论