一起坚持做leetcode周赛

789 阅读3分钟

写在前面

从23年1月份开始,我就坚持做leetcode上面的周赛题目,单周是每个星期日上午10:30-12:00,90分钟时间做4个编程题目,难度一般是:简单(3分)、中等(4分)、中等(5分)、困难(6分)。

从一开始只能做前面的一题、两题,到最近一般都能做第三题,甚至第四题,四个多月的时间大概20次比赛,明显感觉到算法能力有提升。

其中有两次明显的进步,一次是对快速排序的理解;另外一次是对动态规划的理解。

快速排序

leetcode周赛的第二题或者第三题一般不难,但是对时间复杂的有要求,经常因为时间复杂的太高而没能通过,是因为自己的排序算法用的是比较老土的插入排序、交换排序,时间复杂的是O(n*n)。

好几次做完比赛之后重新思考,把排序算法换成快速排序,竟然跑通了。包括后面的比赛需要用到排序的地方我就用快速排序,顺利通过。帮助我做完第二或者第三题

于是我详细思考了一下快速排序算法逻辑,写了一篇文件记录了一下快速排序算法,大家可以看一看,目标是能快速、独立写出来。

动态规划

动态规划算是比较难理解的算法,在比赛中遇到过几次。尤其是今天的这次比赛,第三题用动态规划算法可以快速解出来。我也写了一篇文章记录了一下今天在leetcode周赛中半个小时内解决一道动态规划题目。让我感触颇深,我想主要还是因为之前有一次比赛也是遇到动态规划问题,并且详细学习了一下,记录在最清晰易懂的动态规划,导致我今天能快速用动态规划解决这道题目。

历次参加周赛的代码

github.com/ZBIGBEAR/le…

├── README.md
├── data
│   ├── 20221023.go
│   ├── 20221023_1.go
│   ├── 20221023_2.go
│   ├── 20221023_3.go
│   ├── 20221030_1.go
│   ├── 20221030_2.go
│   ├── 20221030_3.go
│   ├── 20221030_4.go
│   ├── 20221030_5.go
│   ├── 20221030_6.go
│   ├── 20221030_7.go
│   ├── 20221030_8.go
│   ├── 20221106_1.go
│   ├── 20221106_2.go
│   └── 20221106_3.go
├── data02230312
│   ├── 1.go
│   ├── 2.go
│   ├── 3.go
│   └── 4.go
├── data20221120
│   ├── 1.go
│   └── 2.go
├── data20221127
│   ├── 1.go
│   ├── 2.go
│   ├── 3.go
│   └── 4.go
├── data20221211
│   ├── 1.go
│   ├── 2.go
│   ├── 3.go
│   └── 4.go
├── data20230107
│   ├── 1.go
│   ├── 2.go
│   └── 3.go
├── data20230108
│   ├── 1.go
│   ├── 2.go
│   └── 3.go
├── data20230115
│   ├── 1.go
│   ├── 2.go
│   └── 3.go
├── data20230204
│   ├── 1.go
│   ├── 2.go
│   ├── 3.go
│   └── 4.go
├── data20230205
│   ├── 1.go
│   ├── 2.go
│   ├── 3.go
│   └── 4.go
├── data20230218
│   ├── 1.go
│   ├── 2.go
│   └── 3.go
├── data20230219
│   ├── 1.go
│   └── 2.go
├── data20230226
│   ├── 1.go
│   ├── 2.go
│   └── 3.go
├── data20230304
│   ├── 1.go
│   ├── 2.go
│   ├── 3.go
│   └── 4.go
├── data20230305
│   ├── 1.go
│   ├── 2.go
│   └── 3.go
├── data20230409
│   ├── 1.go
│   └── 2.go
├── data20230416
│   ├── 1.go
│   ├── 2.go
│   ├── 3.go
│   └── 4.go
├── data20230506
│   ├── 1.go
│   ├── 2.go
│   ├── 3.go
│   ├── 4.go
│   └── 5.go
├── data20230513
│   ├── 1.go
│   └── 1_test.go
├── data20230514
│   ├── 1.go
│   ├── 2.go
│   ├── 3.go
│   └── 4.go
├── go.mod
└── main.go

总结

我感觉今天的第四题比第三题简单,今天是第二次在规定时间内做完四道题目。因此总结一下,代码虽然放到了github上,但是作用不大,对大家帮助不大,主要还是希望能坚持参加比赛,提升算法能力。有想一起参加比赛、一起坚持打卡的童鞋可以加我微信zjx31415926535879,进群一起打卡做周赛(没有任何商业目的,纯粹一起打卡写算法)。

参考

[1]快速排序算法
[2]今天在leetcode周赛中半个小时内解决一道动态规划题目
[3]github.com/ZBIGBEAR/le…