Python - 金三银四心路历程 之 数据结构与算法 & 刷题

发布于:2024-05-14 ⋅ 阅读:(147) ⋅ 点赞:(0)

目录

一.引言

二.心路历程

三.刷题经历

四.刷题历程

五.总结


一.引言

<夜深人静写算法> 是 23 年 12 月底博主打算跳槽时开始做刷题准备做的专栏,前后准备了大约一个月,刷题完毕后简单准备了项目和简历后就开始加入找工作大军了,最后收获了几家大厂的 offer,趁着今天闲下来一点,记录一下过去这段痛苦又收货满满的历程。

Tips:

本篇博客无广告植入、无课程售卖,纯个人心得分享记录。

二.心路历程

- 校招

博主校招实习转正后进入了西二旗马连洼十字路口四家单位之一,推荐算法工程师一做就是 3年 +,后面也是因为想要换个平台,顺便到一个新的环境继续拼搏一下 [说的比较冠冕堂皇 (#^.^#)],所以决定开始刷题准备面试。

- 碰壁

最早有这个想法是 23 年的年初,当时懒得刷题,裸面了两家大厂,结果也不用说都是无情一面挂。除了简历上的一些比较熟悉的项目之外,很多知识点回答的都不好,加上裸面没有刷题,code 题基本都没太写出来。又赶上年中还有一切其他的事情,所以跳槽的事情一推就到了 23 年底,打算赶一波金三银四。

- 奋发

由于校招是实习转正,社招又是裸面没有刷题,且自己是数学转 CS,所以一直没有系统的学习过数据结构,也没有系统性的刷过 leetcode。23 年底再次萌生跳槽念头后,决定从头好好的把数据结构和 Leetcode 经典题目刷一遍,所以就有了后面的 <夜深人静写算法> 专栏以及今年金三银四的多家大厂 offer。

三.刷题经历

- 说干就干

上面是第一天学习完 Array 并且把对应 Leetcode 题目刷完后记录的博客,下面是最后一天把字符串常用的递归、动态规划算法学习总结完记录的博客,前后大概经历了 30 天。 

- 学习状态

由于是在职学习,所以只能利用下班回家的时间,这段时间大概是 8 左右到家,到家后马不停蹄开始学习,大概学习的步骤是先去破站看对应数据结构的讲解,了解数据结构的基本特点与形式:

视频看完后把关键的特性总结下来后面就是直接去 Leetcode 刷对应的题目了:

刷题的时候会先看题,有思路就尝试本地 pycharm 写一下,写一会搞不出来或者看题没有思路就直接去题解找高赞的题解,因为每天晚上的时间比较有限,如果一个题目纠结太久很拖进度。每一道题除了做出来之后,也会尽可能的把思路进行复盘同时保证时空复杂度不会太离谱。这里复盘很重要,有一些常规的写法或者惯用的思路一定要刻在脑子里,例如树的遍历、看到动态规划就想状态转移方程之类的。

- 心得体会

由于之前没有系统学习过数据结构,所以这一个月的刷题都是在学习了基本对应数据结构后才开始的,例如学完 List、Queue 再刷相关列表链表的题目。这里先把基础搞好我觉得很关键,对于整个数据结构的掌握,以及后续时间复杂度空间复杂度的计算都很有帮助。

另外就是刷题过程中遇到不会的没有思路的,上题解,上题解还不行,那就放弃祈祷 🙏🏻 面试不会遇到这个题目,但是前提是基础的写法和题目你要会,例如二叉树最基本的 DFS、BFS 你得会写,至于一些困难的 Hard 或者实在复杂的题目什么 3D 接雨水、手写红黑树啥的直接 Pass 掉,面试官要是给你出这个大概率这次面试也 886 了。

最后就是面试开始后的心态,不要太卑微也不要太紧张,就默念这个世界是个草台班子勉励自己,同时每场面试都要积极复盘,哪个问题问得好自己没打上来,项目哪个细节还没有打磨好,都要不断精进,面试才能越来越顺利。

四.刷题历程

这里按照数据结构与算法的学习历程对博客进行一下整理,基本上是由简入繁,从最基本的数组、链表开始,到后面的 Map、Set,再到后面的树、动态规划等等。

Index 链接 简介
1 深夜数据结构与算法之 ArrayList 数组、链表
2 深夜数据结构与算法之 Stack & Queue_python 栈、队列
3 深夜数据结构与算法之 Map & Set 字典、集合
4 深夜数据结构与算法之 Tree
5 深夜数据结构与算法之 Graph
6 深夜数据结构与算法之 Divide Conquer & Backtrack 分治与回溯
7 深夜数据结构与算法之 Recursion 递归
8 深夜数据结构与算法之 Heap & Binary Heap
9 深夜数据结构与算法之 BFS & DFS 广度优先、深度优先
10 深夜数据结构与算法之 Greedy 贪心算法
11 深夜数据结构与算法之 Binary Search 二分查找
12 数据结构与算法之 排列与组合_组合 排列、组合
13 深夜数据结构与算法之 DP 动态规划
14 深夜数据结构与算法之 DP 进阶 动态规划-进阶
15 深夜数据结构与算法之 Prune 剪枝优化
16 深夜数据结构与算法之 Two-Ended BFS 双端 BFS
17 深夜数据结构与算法之 Heuristic Search 启发式搜索
18 深夜数据结构与算法之 BloomFilter 布隆过滤器
19 深夜数据结构与算法之 AVL 树 & 红黑树 AVL 树、红黑树
20 深夜数据结构与算法之 位运算 位运算
21 深夜数据结构与算法之 LRUCache LRU 缓存
22 深夜数据结构与算法之 Sort 排序算法
23 深夜数据结构与算法之 DP 串讲 动态规划总结
24 深夜数据结构与算法之 股票问题大全 股票问题总结
25 深夜数据结构与算法之 高级字符串 高级字符串算法
26 深夜数据结构与算法之 字符串常规操作 字符串常规操作

五.总结

年前一个月边工作边每天刷题,由于除了刷题还要写博客整理,所以经常整到 12 点甚至更晚,也是让人回忆起之前考研的充实生活。年后回来就是准备简历,陆续的投简历面试,最终收获了不错的结果。感谢这段时间的经历,也感谢周边家人和朋友的鼓励 ~ 浅浅记录一下,也希望大家的刷题学习之路顺顺利利!


网站公告

今日签到

点亮在社区的每一天
去签到