速记

2021-11-17 09:22:16 星期三
数据范围与时间复杂度:https://www.acwing.com/blog/content/32/
2021-09-12 13:17:51 星期日

11. 盛最多水的容器

2021.7.23
头一回写出比参考答案更优的解法,非常兴奋。
https://leetcode-cn.com/problems/container-with-most-water/comments/1042336
提交记录

19. 删除链表的倒数第n个结点

2021.7.25
这位老哥真的太秀了
https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/comments/229867

2021.8.29 打了256周周赛,easy都做不出来,自闭了……花了一个多小时才发现第一题第二题都理解错了,第一题好长时间都没理解k有什么用,第二题做了老半天才发现nums是个string的vector而不是int,这名字起得真坑……最后半个小时一通操作猛如虎,全是解答错误……真的跪了orz,我不会真这么菜吧……?

49.Group Anagrams

全新的题型。两个需要注意的点,for each循环和map中的it->second使用。

  • for each
int my_array[5] = { 1, 2, 3, 4, 5 };

// 不会改变 my_array 数组中元素的值
// x 将使用 my_array 数组的副本
for (int x : my_array)
{
    x *= 2;
    cout << x << endl;
}

// 会改变 my_array 数组中元素的值
// 符号 & 表示 x 是一个引用变量,将使用 my_array 数组的原始数据
// 引用是已定义的变量的别名
for (int& x : my_array)
{
    x *= 2;
    cout << x << endl;
}

// 还可直接使用初始化列表
for (int x : { 1, 2, 3, 4, 5 })
{
    x *= 2;
    cout << x << endl;
}

- it->second

std::map<X, Y>实际储存了一串std::pair<const X, Y>

std::map<std::string, int> m = /* fill it */;
auto it = m.begin();

这里,如果你用*it,那么你将得到map第一个元素的std::pair

现在你可以接收std::pair的两个元素:

(*it).first会得到key,

(*it).second会得到value。

这等同于it->firstit->second

  • c++中的.和->
    A.B,A是对象或结构体;A->B,A是指针

参考https://blog.csdn.net/tcx1992/article/details/80928790
https://www.runoob.com/cplusplus/cpp-for-loop.html

62. Unique Path

今天做这题花了我半小时,先是递归枚举,超时,然后花20分钟左右写了个dp。一看答案组合数学,崩溃了。这题我不仅小学就会做,而且小学的我只需要1分钟(^_^;)

96. unique-binary-search-trees

2021-09-07 19:03:23 星期二
就算dp也需要数学上一番推导……太难了,我评论区新学到一词:面向测试编程,请看:

class Solution {
public:
    int res = 0;
    int numTrees(int n) {
        //就算动态规划也要推导一番,实在是做不出来……
        //面向测试编程
        switch(n) {
            case 1: return 1;
            case 2: return 2;
            case 3: return 5;
            case 4: return 14;
            case 5: return 42;
            case 6: return 132;
            case 7: return 429;
            case 8: return 1430;
            case 9: return 4862;
            case 10: return 16796;
            case 11: return 58786;
            case 12: return 208012;
            case 13: return 742900;
            case 14: return 2674440;
            case 15: return 9694845;
            case 16: return 35357670;
            case 17: return 129644790;
            case 18: return 477638700;
            case 19: return 1767263190;
            default: return 0;
        }
    }
};

105. construct-binary-tree-from-preorder-and-inorder-traversal

2021-09-08 20:47:40 星期三
mark一下,好像是头一道中等题看了题解也写不出代码的题。感觉分治法非常复杂,传4个参数的递归函数花了好几个小时也没搞懂4个分别代表啥。
2021-09-08 21:00:41 星期三
草,我居然默认这棵树是bst了,然后先序就矛盾了,后面就彻底搞不懂了……为什么又是这种低级错误……

2021-09-10 12:24:31 星期五
hot100做完一半力!只要没有困难题,而且脑袋不秀逗,一天5题好像也不是不可能……看了一下blocky time,用了70.5小时emmmmm

2021-09-11 18:03:37 星期六

后面两个小时那种做不出题的绝望,真的让我挫败感非常强。

2021-09-12 02:15:20 星期日
把力扣杯的题解都大概看了一遍,能自己实现的都自己实现了一遍,感想就是思想还是那些思想,简单到数组,稍微难一点就是常用的数据结构,最难就到dfs,动态规划。但是弯弯绕的细节特别之多,这时比的大概就是熟练度了吧。加之比赛时的紧张感,以及错也不提供案例的比赛制度,临场发挥也有很大的因素。等数月过去我熟练度上来以后或许也能做个3,4道甚至5道的,加油吧。
唉,下午的比赛脑袋太兴奋了,晚上一直睡不着,还爬起来看题解。这也许是好事吧,代表我当时做出来的欲望非常强烈。但现在就痛苦了……2021-09-12 02:28:48 星期日

2021-09-12 12:43:55 星期日
力扣周赛258,rank2152 / 4518 ,做出来两道(半),做出来3题就前两百了emmmmm
5870. 每棵子树内缺失的最小基因值
这道超时了(双重意义:超出比赛时间做出超时的结果)。暴力遇到超时的情况越来越多了,迷信暴力终于要穷途末路了吗?看来以后做题得多用数据结构了orz

2021-09-16 21:08:36 星期四
https://leetcode-cn.com/problems/course-schedule/
有向无环图(DAG)的拓扑,头一回见。

2021-09-25 12:25:58 星期六
https://leetcode-cn.com/problems/find-the-duplicate-number/solution/xun-zhao-zhong-fu-shu-by-leetcode-solution/
二分法,快慢指针,都是短板,以后回顾的时候要自己写出来。

2021-09-28 21:16:24 星期二
https://leetcode-cn.com/problems/longest-increasing-subsequence/
dp状态转移方程日常写不出来,二分法更是看都看不懂。

2021-09-29 12:52:13 星期三
https://leetcode-cn.com/problems/lru-cache/
双向链表不知道怎么用,更别说自己写了。

2021-10-03 00:11:01 星期日
https://leetcode-cn.com/contest/biweekly-contest-62/problems/maximize-the-confusion-of-an-exam/
又见背包问题,上次力扣杯也有一道,想不出来,得好好琢磨懂。

2021-10-08 13:56:05 星期五
有史以来做得最痛苦的一题(据说是中山大学考研上机题,这题就离谱),抄答案后发现人和人的差距怎么可以这么大(╥﹏╥)
https://leetcode-cn.com/problems/remove-invalid-parentheses

2021-10-09 10:37:26 星期六
https://leetcode-cn.com/problems/data-stream-as-disjoint-intervals/
设计题,主要学习map和iterater使用,进一步了解stl。map的upper_bound(val):指向比val大的下一个key。prev(迭代器):指向前一个迭代器。这一块还不是很懂,迭代器只是在国庆的时候躺在床上看了看c++ primer,还只是入门,完全没有实战经验。

2021-10-12 09:58:19 星期二
https://leetcode-cn.com/problems/divide-two-integers/
短短的题目,大大的头疼。看了答案都写不出来代码。

2021-10-16 20:11:41 星期六
https://leetcode-cn.com/problems/expression-add-operators/
太难了8.两个多小时都做不出来。

2021-10-17 15:11:15 星期日
https://leetcode-cn.com/problems/second-minimum-time-to-reach-destination/solution/
有空回来把这题杀了`_'
第263场周赛,终于做出来第三题了,还只用了半个小时,太开心了。
但是后面两个小时也没做出最后那道hard……唉……

2021-10-23 14:41:11 星期六
https://leetcode-cn.com/problems/partition-equal-subset-sum/
又见01背包,还是想不到……但是代码会看完思路自己写了。

2021-10-26 10:07:53 星期二
https://leetcode-cn.com/problems/shopping-offers/
我以为我dfs已经很熟练了,没想到还是有做不出来的题目……
https://leetcode-cn.com/problems/number-of-valid-words-in-a-sentence/solution/regex-c11-by-xi-jiu-cfrj/
正则表达式

2021-11-06 22:36:58 星期六
hot100刷完啦!(还有一题要会员)

还是挺虚的,没把握再次遇到一定会。

2021-11-07 15:59:06 星期日
https://leetcode-cn.com/problems/minimized-maximum-of-products-distributed-to-any-store/
二分永远的不会,不仅想不到,而且写不出(╥﹏╥)

周赛最高排名更新了,居然把困难写出来了。我果然还是相对比较擅长dfs,这大概是cs106b的功劳。

2021-11-08 12:39:35 星期一

排名终于干进前十万了,176题排98104

2021-11-09 19:10:12 星期二

凌晨2个多小时做完了困难写了篇困难题解居然点击上千了(`・ω・´)

2021-11-11 19:57:14 星期四
https://leetcode-cn.com/problems/k-inverse-pairs-array/
每日一题的这道困难(动态规划),再次让我见识了自己的不足……看了好几小时答案,还是看不懂,我还是差得很远呢……

2021-11-17 20:23:35 星期三
上周力扣周赛打了1k多名,居然还接到了蓝湖hr小姐姐的电话……刚接起电话我还以为是电信诈骗呢……

2021-11-25 14:20:12 星期四
https://leetcode-cn.com/problems/contains-duplicate-iii/
滑动窗口想不到,边界处理更不会。
2021-11-25 15:21:20 星期四
草,这剑指offer感觉是题题都不会啊(包括简单),感觉一百来个小时力扣简直是白刷了。

2021-11-30 19:13:08 星期二
力扣29
https://leetcode-cn.com/problems/xoh6Oh/
我愿称之为力扣最难简单题,位运算,边界处理,循环或递归的顶级境界,做了两个多小时(包括看答案思路)都做不出来,甚至答案都有点看不懂,这tm不是困难?
btw上周周赛ak了。

2021-12-01 06:38:13 星期三
https://leetcode-cn.com/problems/random-pick-with-weight/solution/an-quan-zhong-sui-ji-xuan-ze-by-leetcode-h13t/
随机设计题的stl高级应用

C++STL说明:

1.mt19937头文件是<random> 是伪随机数产生器,用于产生高性能的随机数
2.uniform_int_distribution 头文件在<random>中,是一个随机数分布类,参数为生成随机数的类型,构造函数接受两个值表示区间段
3.accumulate 头文件在<numeric>中,求特定范围内所有元素的和。
4.spartial_sum函数的头文件在<numeric>,对(first, last)内的元素逐个求累计和,放在result容器内
5.back_inserter函数头文件<iterator>,用于在末尾插入元素。
6.lower_bound头文件在<algorithm>,用于找出范围内不大于num的第一个元素

2021-12-06 20:41:05 星期一
https://leetcode-cn.com/problems/super-pow/
快速幂,不会。

2021-12-26 00:12:42 星期日
第68场双周赛

大数乘除法,短板。看起来不难,就是没有动手写过。看前几位要取对数,真的是非常巧妙的做法。
我的理解是这样:把所有数取对数相加结果记为b,那么10的b次方即为所有数乘起来的结果,记为a。b的整数部分携带的是a的位数的信息,而真正表示每一位是什么数的信息在b的小数部分里面。我们要取前5位,那么以10为底,把b的小数部分+5就是我们想要的结果。

2022-01-24 23:08:07 星期一
https://leetcode-cn.com/problems/second-minimum-time-to-reach-destination/
刚接触周赛时的困难成了今天每日一题。巧妙的广度优先搜索优化方法,记录所有点的最短路径和次短路径,类似dijkstra算法。
https://www.jianshu.com/p/8b3cdca55dc0