# leetcode
- 都大三下了,快到找工作的时候了
- 正巧2020武汉肺炎只能在家,就刷刷题这样子不然过于无聊
- 后续的一年也要坚持啊!
- 删除了后面的题目打卡和专题打卡,感觉没啥用
- 发现了一个很nb的刷题项目,之后刷题很根据这个来进行
每日打卡:
日期 | 刷题数 | 刷题感想 |
---|---|---|
2020/1/28 | 3 | 好久不刷了感觉很多东西都不熟练了,尤其是字符串处理,语言方面只记得C了23333,之后考虑刷刷py |
2020/1/29 | 8 | 感觉数组题都做的不大顺,很多思想自己一下子想不到,实现的能力也不如当年,还需要多加练习 |
2020/1/30 | 3 | 手感来了嗷,用分治法写了2Sum感觉还不错,今天写代码速度明显快快了不少 |
2020/1/31 | 3 | 最大的收获是用4种方式做了2Sum, 顺手写了两道链表题 |
2020/2/1 | 6 | 再也不研究一些奇奇怪怪的算法了,好好刷题 |
2020/2/2 | 5 | 做了几道字符串的题,感觉做着做着就做成数组了2333,剩下的几道才是精髓,明天做 |
2020/2/3 | 5 | 手感不错,感觉刷题手感日益增加,接下来需要的是多写一些算法题锻炼思维 |
2020/2/4 | 7 | 刷题时间最短的一天,有点子浮躁,不想写难题,但手感还行 |
2020/2/5 | 3 | 3道题基本都是Medium的难度,感觉还是有点棘手,树的层次遍历写了好久,没想到用队列是真的难受 |
2020/2/6 | 4 | 今天是dp专题哦,感觉之前学的都忘了,看了几篇博客,打家劫舍系列问题确实挺有意思,dp还得多练 |
2020/2/7 | 6 | 计算质数真的绝,大家的方法都是打表刷题库23333,正解也确实很巧妙 |
2020/2/8 | 8 | 今天的几道位运算题及其灵性而精妙啊,要学会巧用移位;至此为止初级算法已经全部写完,明天开始写中级算法了 |
2020/2/9 | 3 | 有一说一,写中级算法确实难受,题不难但是情况复杂,各种if导致思绪有点乱,调bug浪费大量时间 |
2020/2/10 | 0 | 大部分时间花在了调研文档的整理上,就没有做题,明天补上 |
2020/2/11 | 4 | 字谜分组这个题简直有毒,不过解答中字母异位词判断很精妙,第一次知道qsort的compare函数可以写得这么sao |
2020/2/12 | 4 | 今天两个字符串的题用dp简直给我做傻了,后来刷了两道dp的题感觉又还行,还剩两道dp明天做 |
2020/2/13 | 2 | 做了两道dp,感觉状态完全不行,总是不由自主地去找最优解,结果都写不出来,本来想写数发现自己写不出非递归的遍历,还是tcl |
2020/2/14 | 3 | 感觉自己写栈和队列写魔怔了,现在递归法又写不出来了23333,不过有一说一,C++的栈和队列确实好用,以后相关的题可以用C++ |
2020/2/15 | 2 | 打算明天打周赛今天就尝试了一下上周的题,前两题感觉还行,不过还是感觉自己不太熟练,后两题确实恶心人,就不说了,看明天表现 |
2020/2/16 | 4 | 第一次周赛四道题难度都很适中,但周赛和平时刷题不一样的在于周赛讲究快,所以很多时候会想着暴力破解,所以事后一定要深入思考,多看题解 |
2020/2/17 | 3 | 感觉自己的树和图真的是惨不忍睹,数的遍历以及DFS、BFS的递归和非递归实现都不熟练,最近算是捡起来了一些,慢慢来,(不过知道了内推无需笔试还是很爽,开学后要把重点放在基础理论方面) |
2020/2/18 | 0 | 课比较多,又感觉中级算法比较难就没有写 |
2020/2/19 | 15 | 没写Leetcode,最近缓冲一下,把剑指offer刷一下 |
2020/2/20 | 7 | 继续剑指offer,C++确实比较舒服,在牛客网刷题有一个好处就是不能debug,很难受但感觉挺必要的 |
2020/2/21 | 2 | 依旧是剑指offer,开始上课+项目组工作了,每天抽空做个一两道 |
2020/2/22 | 3 | 暂时回归leetcode,感觉比较有针对性,剑指offer的题比较发散,开始适应C++的各项操作,感觉还挺好用的 |
2020/2/23 | 4 | 第二次周赛,仔细一想其实都不是很难,但做的时候有点手忙脚乱了,感觉还是要仔细想一想,不能拿着题就去套经验,很多题都是数学解法的 |
2020/2/24 | 2 | 把回溯部分写完了,感觉dfs熟练了不少,昨天周赛的时候做出来的第二题也是用的dfs,后续再接再厉 |
2020/2/25 | 4 | 感觉写搜索与排序主要是继续习惯c++的数据结构,今天主要学到的是map、unordered_map、priority_queue |
2020/2/26 | 1 | 时间不多,就写了一题,主要是二分法,也没啥好说的 |
2020/2/27 | 3 | 基本都是之间见过的题,写起来很得心应手,不过C++的操作还不说太熟悉 |
2020/2/28 | 1 | 写到想吐的二叉树序列化和反序列化,本来想的是序列化用队列,反序列化用栈,但bug太多了,就嫖了别人的 |
2020/2/29 | 4 | 设计题确实是很巧妙,感觉需要巧用C++提供的数据结构,三个数学题emmm,不好说,感觉这种题一下子也很难有太大提升 |
2020/3/1 | 4 | 又是一周的周赛,写了两题,感觉用C++写周赛和C的想法都开始不同, 更注重于使用数据结构去解决问题 |
2020/3/2 | 4 | Math这个专题真的很不友好...,大多数其实都是在处理细节,用long int就好了,不过有些方法还是比较精髓的,为了巩固位运算特意又去做了不用加法实现两数相加的经典题,确实很有意思 |
2020/3/3 | 4 | 中级算法刷完了,这个任务排班的题还是很有意思,思想可以借用 |
2020/3/4 | 0 | 发现了一个刷题的github项目,算法部分讲得很好,第一天先熟悉熟悉,之后再开始刷专题 |
2020/3/5 | 1 | 做了牛客的一些理论知识点发现自己理论部分还差得远,之后就做Leetcode的每日一题然后学理论去 |
2020/3/6 | 1 | 做了和为s的连续正数序列,这题纯粹数学题嗷,本来想用队列来实现滑动窗口,但不好把队列中的值取出来,还是数学方法简单 |
2020/3/7 | 1 | 之前做过栈的最大值,今天这个队列的最大值很精妙,学会了用双端队列,明天要打周赛了 |
2020/3/8 | 3 | 周赛打的比较糟糕,感觉是脑子不大好使,其实题也不是很难,都能想到的,后续几天稳一稳 |
2020/3/9 | 1 | 做了之前做过的买卖股票的最佳时机,一次AC,感觉还ok |
2020/3/10 | 1 | 求二叉树的直径,其实想明白了是求左右子树深度之和就很简单,感觉做题还是要先想清楚这个题在考数目,不能盲目开始写 |
2020/3/11 | 0 | 一直在弄BlogGo的开发,总算是告一段落了,没有写题 |
2020/3/12 | 1 | 这个求字符串的最大公因子真的很数学,辗转相除还能理解,这个最大公约数真的很迷 |
2020/3/13 | 1 | 多数元素,简单题,虽然有点忘了unordered_map,不过也一次AC了,题解的摩尔投票法有点意思 |
2020/3/14 | 1 | 求最大上升序列,这题1个月前做过,也值得要dp,但状态转移方程就是想不清楚,诶,越来越菜 |
2020/3/15 | 4 | 这次周赛感觉还是不错的,整个过程心态调整的不错,当然结果也不错 |
2020/3/16 | 1 | 字符串压缩题不难,但坑点比较多,所以会被当做面试题,需要注意:1.空串;2.单个符号长度大于10时的计数器处理(第一次知道C++有to_string这种东西);3.使用res = res + c会每次会生成新的字符串可能出发内存限制,需要使用res += c |
2020/3/17 | 1 | 单词拼写,用vector去存储,感觉比较常规,一次AC,今日份舒适 |
2020/3/18 | 1 | 矩形重叠,主要是得反向思考 |
2020/3/19 | 1 | 最长回文子串的构造,很简单,但一开始看成了寻找最长回文子串想了一会没想出来,明天得康康 |
2020/3/20 | 1 | 寻找最小k个数,基本是快排的思路,但边界条件杀我,wtcl |
2020/3/21 | 1 | 水壶倒水的问题,一眼过去觉得肯定是数学揭发,果真是跟最大公约数有关,但确实太难了,写图又更繁琐 |
2020/3/22 | 4 | 周赛,结果还行,复习了一下KMP,很是头疼 |
2020/3/23 | 2 | 写了两题链表,感觉还行,比较熟练 |
2020/3/24 | 1 | 按摩师问题,类似于之前的小偷问题,dp就完事了,完完全全自己写的,很舒服 |
2020/3/25 | 1 | 计算三维形体的表面积,采用补集的方法,用全部的见遮住的,想起来之前判断两长方形是否相交的题,也是这种思路 |
2020/3/26 | 1 | 很没意思一题,一次AC,主要是代码写的不大好看,确实可以用数组的方式来代替一堆差不多的for |
2020/3/27 | 1 | 感觉重点在于求最大公约数,查了个辗转相除法,结果C++自带了gcd。。。 |
2020/3/28 | 1 | 单词的压缩编码,其实就是后缀搜索,可以使用HashSet进行快速搜索 |
2020/3/29 | 3 | 182周赛,感觉现在周赛太两级分化了,还行希望23题能有些区分度(不过每次都稳定AC3题感觉挺好的2333) |
2020/3/30 | 1 | 约瑟夫环,不用链表真的很难,数学推导我fo了 |
2020/3/31 | 1 | 快排咋写半小时,还是tcl |
2020/4/1 | 0 | 每日一题是抄的,就不算我写的好了 |
2020/4/2 | 1 | 生命游戏这个,四层for循环真的。。。让人觉得是不是写错了 |
2020/4/5 | 4 | 这几天面试让人很不在状态,所以几天没写,周赛打的也一般,感觉有点身心疲惫 |
2020/4/6 | 1 | 这个hard的dp最后看完其实不太复杂啊,但对这个题目进行抽象确实不容易 |
2020/4/7 | 1 | 旋转数组这题感觉之前做过,很老很经典的题,但第一次见到通过翻转的形式来代替旋转的思路 |
2020/4/8 | 1 | 一个dfs写半个小时也是没谁了,写了好些bug |
2020/4/9 | 1 | 又是一个dfs题,今天就写的比较顺,一次AC |
2020/4/10 | 1 | 直接写了一个逆序遍历就ok了,咋答案里面各种队列啊,翻转啊,很迷 |
2020/4/11 | 1 | 扔鸡蛋是一个很经典的题,自己想出了暴力dp,后来发现dp还能优化,ac了,看答案发现别人都是反向思维,tql |
2020/4/12 | 4 | 184周赛,感觉实际上题目都不是很难,但前三道没啥意思,都是暴力,最后一道是找规律 |
2020/4/13 | 1 | 设计Twitter,感觉自己做出来的方案必定不是最优的,但是很简洁清晰,官方给的答案我都不想看 |
2020/4/14 | 1 | 链表两数相加,第一反应是翻转链表,后来看题解是栈,结果很慢,后来尝试了别人的传说是打败98%的代码,还是很慢。。。感觉Leetcode这个时间计算误差太大了 |
2020/4/15 | 1 | 01矩阵问题,想到了dp,但发现实现起来很难,结果发现居然真的写多个for |
2020/4/16 | 1 | 合并数组,老题目了,发现erase会超时,原来C++实现erase就是数组移位。。。 |
2020/4/17 | 1 | 跳跃游戏,之前AC过,发现C++暴力不能过,而C可以hhhhhh |
2020/4/18 | 1 | 盛最多水的容器,比较经典的题,使用双指针移动即可 |
2020/4/19 | 3 | 上午周赛,下午在赶CTF就没有来得及提交,周赛打的越来越不行,感觉基本都是在做暴力题,没啥必要,所以先停掉吧 |
2020/4/20 | 1 | 岛屿数量,之前写过,遍历+dfs即可,看到答案用并查集,想法很ok,实现很复杂 |
2020/4/25 | 1 | 前几天比较忙,还写了华为的面试,就没有刷题,今天写了全排列,用递归写法,一次过 |
2020/4/26 | 1 | 合并K个数组,本质上就是合并2个数组+一个组合算法,可以采用分治法来降低复杂度 |
2020/4/27 | 1 | 搜索旋转排序数组,之前写过,先找到旋转点然后二分法即可 |
2020/4/28 | 1 | 数组中数字出现的次数,学到了分组异或,很强 |
2020/4/29 | 1 | 山脉数组,hard,但其实就是个二分法,交互式问题比较有意思 |
2020/4/30 | 1 | 快乐数,比较简单,循环+map就完事了,看题解还有数学方法和快慢指针,速度都差不多 |
2020/5/1 | 1 | 合并有序链表,常规题,递归解决有点意思 |
2020/5/3 | 1 | 最大子序和,很简单,但感觉自己的思维今天有点乱,把贪心和dp的思路揉起来自己都迷得不行 |
2020/5/4 | 1 | 跳跃游戏II,dp会超时,开始用贪心,实际上感觉就像是dp的优化,贪心真的是迷之算法 |
2020/5/5 | 1 | 验证二叉搜索树,常规题了,坑点在于INT_MAX、INT_MIN的处理,可以使用long来解决问题 |
2020/5/7 | 1 | 判断二叉树子树,递归即可解决,但时间复杂度必定不低,记得之前周赛做过,但找不到了 |
2020/5/8 | 1 | 最大正方形,感受到了万物可DP,看了后续的最大矩形,怕了怕了 |
2020/5/9 | 1 | 二叉树的最近公共祖先,第一反应是并查集,然后觉得递归有点慢,hash方法可 |
2020/5/11 | 1 | 实现pow(x,n),自己写了快速幂递归,看题解发现快速幂迭代的思路很绝 |
2020/5/12 | 1 | 实现最小栈,挺easy的,直接用两个栈来实现就ok |
2020/5/13 | 1 | 二叉树的层次遍历,写了递归和迭代两个版本,分别用了dfs和bfs |
2020/5/14 | 1 | 只出现一次的数组I,位运算就AC了,II和III简单看了一下 |
2020/5/15 | 1 | 和为K的子数组,一开始思路就偏了,想贪心后来发现有很多情况没考虑到,最后hash解决 |
2020/5/17 | 1 | 课程表II,拓扑排序,看着答案写了个BFS,感觉自己的图论着实不行 |
2020/5/18 | 1 | 乘机最大子数组,常规思路用dp,不过得同时更新最大和最小两个数组 |
2020/5/19 | 1 | 验证回文字符串II,有一次修改的机会,很有意思,我用了一个flag引用,实则没必要,只需要在主函数去判断一次再进递归就好了 |
2020/5/20 | 1 | 每个元音包含偶数次的最长子字符串,状压dp+前缀和,实属难顶,就勉强能看懂答案 |
2020/5/22 | 1 | 从前序与中序遍历序列构造二叉树,思路是有的,但vector在这调bug很难,如果用指针在这就很方便 |
2020/5/26 | 1 | 最近的题都离谱啊,前两天都hard,今天这个mid寻找重复数,实属难看懂 |
2020/5/27 | 1 | 求数组全部子集,有dfs和回溯两种写法,感觉是两种生成树的方式 |
2020/5/28 | 1 | 和可被 K 整除的子数组,昨天的每日一题,前缀和问题,用hash |
2020/5/29 | 1 | easy的打家劫舍,dp问题,但一开始对dp数组的定义还是有点问题的,继续练习吧 |
2020/5/30 | 1 | 柱状图中最大的矩形,单调栈解决,把答案看懂了,之后多try一下单调栈 |
2020/6/1 | 1 | 拥有最多糖果的孩子,真就61特供,大家儿童节快乐 |
2020/6/2 | 1 | 求n的阶乘,要求不用乘除不用fow、whlie等,用位运算即可,不过不用while就只能重复写一堆了..... |
2020/6/4 | 1 | 不用除法计算除自身以外数组的乘积,感觉自己的思维很僵硬,最近总是做不出来题,总是看题解,很难顶啊 |
2020/6/9 | 1 | 把数字翻译成字符串,第一眼就想到dfs,后来发现是一种dp,看答案发现逆序比顺序简单多了 |
2020/6/10 | 1 | 回文数,用栈写的,发现大家都用数学解法,难顶 |
2020/6/11 | 1 | 每日温度,自己写了一种类似于dp的方式,效率还可以,看答案后写了单调栈,理论上应该更优,实际上比我自己的方法还差点2333 |
2020/6/12 | 1 | 三数之和,经典题了,上手就循环双指针,但在去重的时候使用了set然后超时,算法里面有一些小细节还是很考察水平的 |
2020/6/17 | 1 | 最佳观光组合,感觉是道数学题,但自己真的脑子生锈了。。之后还是需要刷一下专题 |
2020/6/19 | 1 | 验证回文串,双指针,主要是考察对API的调用 |
2020/6/21 | 1 | 二叉树中的最大路径和,一开始路径理解错了,虽然是hard但是不算难 |
2020/6/25 | 1 | 单词拆分,每日抄答案,感觉现在写题N2的都不敢考虑了 |
2020/6/26 | 1 | 移除重复节点,学到了cpp不能free,要delete |
2020/6/27 | 1 | 缺失的第一个正数,跟hash有关,数学题,最近脑子不好使 |
2020/6/29 | 1 | 数组中第K大元素,复习了一下快速选择算法 |
2020/6/30 | 1 | 栈实现队列,发现有更优的解法 |
2020/7/1 | 1 | 最长重复子数组问题,DP解决 |
2020/7/2 | 1 | 有序矩阵中的第K小元素,二分法 |
2020/7/3 | 1 | 有序数组转二叉树,递归即可 |
2020/7/4 | 1 | 最长有效括号,dp、栈都可以做,感觉思路很重要 |
2020/7/5 | 1 | 通配符匹配,写递归会超时,dp可以解决 |
2020/7/6 | 1 | 不同路径II,dp很简单,dfs会超时 |
2020/7/7 | 1 | 路径总和,二叉树递归,简单 |
2020/7/8 | 1 | 跳水板,需要注意一些边界条件,适合面试 |
2020/7/9 | 1 | 恢复空格,感觉这题应该是hard啊,只能看懂暴力dp解法 |
2020/7/10 | 1 | 含冷冻期的股票买卖,感觉这一套题的dp都怪怪的,不过能ac |
2020/7/12 | 1 | 地下城游戏,dfs超时了,写了dp发现有问题,需要反向dp |
2020/7/13 | 1 | 求数组交集,排序后遍历 |
2020/7/14 | 1 | 三角形最小路径和, 跟前几天的题有点像,dp可以秒杀 |
2020/7/15 | 1 | 不同的二叉搜索树,感觉是个数学题,需要计算通项公式 |
2020/7/17 | 1 | 搜索插入位置,easy题,二分法 |
2020/7/18 | 1 | 交错字符串,可以用dp,发现字符串匹配不少是dp解决的,时间为O(mn) |
2020/7/20 | 1 | 排序后的twoSum,直接双指针 |
2020/7/22 | 1 | 旋转数组中的最小数字,虽然是easy,但二分去重还是有点难想到 |
2020/7/23 | 1 | 最小路径和,dp可秒杀 |
2020/7/24 | 1 | 博弈论的easy题,代码简单但很有意思 |
周赛打卡:
场次 | AC数 | 名次 | 时间 | 感想 |
---|---|---|---|---|
176 | 3 | 129/2409 | 2020/2/16 | 第一次周赛嗷,前两题基本上是送分题,10分钟AC掉,但第二题没有去维护前缀积列表而是全部录入后查询,当时没超时,但比赛后再尝试就超时了,第三题比赛的时候想着dp一直没做出来,但其实贪心做很简单的,最近是dp魔怔了,第四题用倒推思想是对的但是不应该都排序,虽然也AC了但其实还有很多可优化的位置,总而言之就是二四两题待优化,打比赛的时候过于暴力。 |
177 | 1 | 1315/2985 | 2020/2/23 | 实名羞耻,第一题一看发现py两行能解决就没写, 第二题一拿到就想到dfs,写出来了但是判断条件有点乱,之后看题解发现可以用入度出度来做,确实很巧妙,第三题暴力法吧,比赛的时候因为先做的第四题,做第三题的时候有点晕,实际上问题不是很大,第四题基本思路没错,就是做的时候emmm,没想到把去分类删除,贪心得不到最优解。 |
178 | 2 | 707/3304 | 2020/3/1 | 感觉还行,比上周好,发现每次第一题都是暴力解,第二题思路还行,但没法解决溢出问题,该用Hashmap还是要用哦,第三题就是递归解决,没什么难度,第四题有点难啊,看解析都是什么优先队列,用图论的一些算法去解决,感觉自己都忘了,赛后嫖了一个bfs,感觉还是要以基础算法为主,dp、bfs、dfs、贪心、分治,这些基本思想搞定就行了,不整那么多花的,搞不来。 |
179 | 1 | 2056/3605 | 2020/3/8 | 最近的周赛真的是一次比一次烂,脑袋越来越晕,第一题这么简单想很久,第二题有点子绕但也不至于做不出来,第三题就一个bfs,第四题没看,做的时候23做出来都超时了,感觉在优化方面还有待加强,感觉这个人脑子都是晕的,现在把题解都写了还觉得晕晕的,下次调整状态吧。 |
180 | 3 | 588/3714 | 2020/3/15 | 感觉心态平和得去写代码而不是为了尽快AC去写思路清晰得多,第一题本来想暴力来着,后来纠正过来了,比起以前的无脑第一题还是难一些;第二题本来想用两个栈,看数据量怕超时,改成了deque,感觉不错,不过最后看dalao们都是数组。。。真就返璞归真;第三题数据结构的内容,但翻转很麻烦,所以想着用数组解决,利用了一下互联网hhh,感觉还行;第四题真就想不出来,最后看题解,这贪心也没人证明,很迷,不知道为什么这样就能找到最优解,总体感觉不错,继续努力。 |
181 | 3 | 712/4148 | 2020/3/22 | 第一题就insert,第二题暴力就好了,有的说找什么立方数啊质数啊,意义不大,第三题真就是逻辑处理呗,dfs或者bfs都可以,就是逻辑复杂,第四题当时死也没做出来,后来发现是KMP算法中求next数组,一下子豁然开朗(虽然KMP是真的不会了),但很多人用py,js之类的第四题可以暴力过,这就没办法了23333 |
182 | 3 | 895/3910 | 2020/3/29 | 感觉这套题就很两极分化,第一题一个unordered_map就可,第二题暴力三层for,第三题两个unordered_map保存信息,第四题看题解数位dp+kmp,打扰了,超出了我的能力范围,前三题很多人都做出来了,主要是第三题debug花了很多时间,在C++里面还是不要malloc了,没啥必要。。。 |
183 | 2 | 1126/3754 | 2020/4/5 | 感觉这套题整体偏难啊,前两题就wr了很多次,第一题就排个序求个和,不算很复杂,第二题本来打算转int做的,后来stoi直接溢出了,看到别人py写的就可以23333,后来就字符串处理了一波,第三题卡了很久,就是个贪心构造的题,但一直想不出来,第四题是博弈论,没啥思路,但最后解答其实很简洁 |
184 | 3 | 1476/3846 | 2020/4/12 | 感觉这次的四个题难度都不大,不过前三题都是之前第二题的难度吧,基本都是暴力解法,没啥意思,第四题看起来难,当时就没写了,实际上是数学问题,找规律可以解决,这次名次不大行主要是第三题写了有个超时的解法之后就不想写了,觉得很烦,虽然最后还是写了,但时间没上去,第四题后来也没去想了,晚上看了答案感觉实际上不难。 |