- 博客(22)
- 收藏
- 关注
原创 力扣刷题记录: 3040. 相同分数的最大操作数目Ⅱ
本题是第 124 场双周赛的 Q3,LC竞赛分为1706。我们可以发现这个问题的子问题结构和这个问题是一样的,于是我们天然地想到类似递归或者dp这类的方法。
2024-06-08 11:09:10
607
原创 力扣刷题记录: 1080. 根到叶路径上的不足节点
本题是第 140 场周赛的 Q3,LC竞赛分为 1806。主要考察递归。我觉得这道题不值这个分。
2024-06-06 19:57:44
393
原创 力扣刷题记录: 2134. 最少交换次数来组合所有的 1 Ⅱ
这道题是第275场周赛的 Q2,LC竞赛分为 1748,主要考察滑动窗口。说实话这道题要想到是滑动窗口就很简单,否则就根本无从下手。
2024-05-26 17:43:34
573
原创 力扣刷题记录: 2653 滑动子数组的最大优雅值
本题是第342场周赛的Q3,竞赛分为1786,使用的方法是滑动窗口+哈希。从这个角度上讲这一题很像第567题。在LC中,当数据量大小大于等于10^5(说明方法的复杂度必须低于O(n^2)),且涉及到子数组之中的计数,且数组元素的大小范围很有限时,可以考虑一下是否是 滑动窗口 + 哈希。力扣刷题记录: 567 字符串的排列-优快云博客文章浏览阅读169次。既然是s2的子串是s1的排列,那么只需要这个子串中含有的字符的种类和数量和s1的完全相同即可,于是很自然地想到哈希。
2024-05-22 19:13:31
747
原创 力扣刷题记录: 974 和可被K整除的子数组
这道题是第119场周赛Q3,LC竞赛分为1676。注意到数据量最大为30000,所以不能使用O(n^2)的方法。
2024-05-17 19:28:13
776
原创 通过各种方式发现的C/C++有意思的知识/性质/bug,以及一些零碎的算法
我最近在读《Effective C++》以及做学校的课程设计,遇到了一些奇奇怪怪/很有意思的知识/性质/bug,同时,我有时候也会想起自己以前遇到的一些有意思的事情,权且都写在这里。本文将会持续更新。
2024-05-08 13:25:40
554
原创 力扣刷题记录: 842 将数组拆分成斐波那契数列
一开始感觉就是回溯,后来一看数据量到两百了,也没细算,感觉200挺大的,不是回溯。实在想不出回溯以外的方法了,看了眼题解,原来贞德是回溯。这里关键就是回溯只在确定前两个数的时候作为枚举,所以复杂度不能像排列组合问题一样算。这题的时间没意义。同一份代码分三次交上去,分别超过100%,50%,40%的用户。
2024-05-07 13:53:26
225
原创 力扣刷题记录: 516 最长回文子序列
这道动态规划以前做过,那个时候对转为最长公共子序列的做法惊为天人,深深反思自己为什么这么笨,这么好的思路都没想到。
2024-05-04 18:54:15
240
原创 力扣刷题记录: 567 字符串的排列
既然是s2的子串是s1的排列,那么只需要这个子串中含有的字符的种类和数量和s1的完全相同即可,于是很自然地想到哈希。如果每一次检查一个子串都要遍历一次,会将大量的中间重叠部分重复计算,不看对数组的操作,单看遍历的复杂度大概是O(len1(len2-len1+1)),len1为s1长度,len2是s2长度,结合题目给的数据量上限,应该也是能过的,但是时间应该是垫底。这里为了节省遍历数组的时间,把数组大小压缩成36了,如果搞大一点,直接用ascii码映射的话应该也是能过的,代码简洁很多。
2024-05-04 10:23:22
258
原创 力扣刷题记录: LCR024 反转链表
反转链表是数据结构课链表章节的必做入门题,今天心血来潮重新做了一下发现想不起来怎么做了,于是拿了张纸现推了一下,最后还是没费什么功夫就写了出来,然后再看历史提交发现这种写法跟自己以前写的不一样。
2024-05-03 15:32:41
272
原创 力扣刷题记录:384 打乱数组
暴力解法超时主要源于多次无效选取,而且无效选取的次数相当不稳定,有可能达到很多次。第1次循环,将索引x1对应的值与索引n-1的值进行交换;第二次循环,将索引x2对应的值与索引n-2的值进行交换,以此类推。布尔数组大小与输入数组相同,初始化为全0,表示所有元素均未被选取过。进行多次循环,一旦选取某个未被选取过的下标就将其对应的数组元素加入nums2中,并将其对应的布尔数组元素设置为1。这种做法明显是容易超时的,尤其是当n较大,且 i 的大小比较靠近n时,极其容易出现循环很多很多次的情况。
2024-05-03 09:43:03
292
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅