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

目录

一.引言

二.心路历程

三.刷题经历

四.刷题历程

五.总结


一.引言

<夜深人静写算法> 是 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深夜数据结构与算法之 LRUCacheLRU 缓存
22深夜数据结构与算法之 Sort排序算法
23深夜数据结构与算法之 DP 串讲动态规划总结
24深夜数据结构与算法之 股票问题大全股票问题总结
25深夜数据结构与算法之 高级字符串高级字符串算法
26深夜数据结构与算法之 字符串常规操作字符串常规操作

五.总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/608010.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何在电脑中截屏【攻略】

如何在电脑中截屏【攻略】 前言版权推荐如何在电脑中截屏电脑工具截屏键&#xff1a;PrtScQQ截屏快捷键&#xff1a;CtrlAltA微信截屏快捷键&#xff1a;AltAQQ浏览器截屏快捷键&#xff1a;CtrlShiftXEdge浏览器截屏快捷键&#xff1a;CtrlShiftS 最后 前言 2024-5-9 21:31:3…

MongoDB Atlas Vector Search与Amazon Bedrock集成已全面可用

亮点前瞻 ●MongoDB Atlas Vector Search知识库与Amazon Bedrock的最新集成&#xff0c;将极大加速生成式AI应用的开发。 ●诺和诺德利用MongoDB Atlas Vector Search与Amazon Bedrock集成&#xff0c;加速构建AI应用程序。 MongoDB&#xff08;纳斯达克股票代码&#xff1a…

scikit-learn实现单因子线性回归模型

1.是什么&#xff1a; 针对机器学习提供了数据预处理&#xff0c;分类&#xff0c;回归等常见算法的框架 2.基于scikit-learn求解线性回归的问题&#xff1a; 2.1.求解a&#xff0c;b对新数据进行预测&#xff1a; 2.2评估模型表现&#xff08;y和y’的方差MSE&#xff09;…

Linux流量分析工具 | nethogs

在应急过程中&#xff0c;经常会遇到应用访问缓慢&#xff0c;网络阻塞的情况&#xff0c;分析原因可能会想到存在恶意程序把带宽占满的可能。通过这样一个小工具可以快速定位异常占用带宽程序的路径、PID、占用流量大小或是排除由带宽占满导致服务器缓慢的猜想。 一、简介 Ne…

【ai早报-01 project】

今天和大家分享一款有趣的开源项目 01 Project。 The 01 Project is building an open-source ecosystem for AI devices. 其主旨是基于开源生态&#xff0c;构建以LLM为核心的产品&#xff0c;提供软硬件方案。 市面上类似产品: Rabbit R1, Humane Pin。 如上图所示的这款产…

保姆级零基础微调大模型(LLaMa-Factory,多卡版)

此处非常感谢https://github.com/hiyouga/LLaMA-Factory这个项目。 看到网上的教程很多都是教如何用webui来微调的,这里出一期命令行多卡微调教程~ 1. 模型准备 模型下载比较方便的方法: 1. modelscope社区(首选,速度很高,并且很多需要申请的模型都有)注意要选择代码…

MySQL加减间隔时间函数DATE_ADD和DATE_SUB的详解

目录 前言语法示例代码运用 前言 mysql中内置函数date_add 和 date_sub能对指定的时间进行增加或减少一个指定的时间间隔&#xff0c;返回的是一个日期。 语法 添加时间间隔 DATE_ADD(date,INTERVAL expr type)SELECT DATE_add(NOW(),INTERVAL -7 DAY);//获取7天前的日期 S…

编译和链接(超详细)

✅博客主页:爆打维c-CSDN博客​​​​​​ &#x1f43e; &#x1f539;分享c语言知识及代码 一、编译和链接实例 假设我们有一个名为main.c的C语言源文件&#xff0c;它包含了一个简单的Hello World程序。我们可以使用gcc编译器对该源文件进行编译&#xff0c;生成一个可执行…

初学者必知:ARM与单片机的区别

在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「ARM的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;ARM和单片机之间有许多区别&#…

锂电池恒流恒压CCCV充电模型MATLAB仿真

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; CCCV简介 CCCV充电过程是恒流充电&#xff08;CC&#xff09;和恒压充电&#xff08;CV&#xff09;的结合。在CC阶段对电池施加恒定电流&#xff0c;以获得更快的充电速度&#xff0c;此时电池电压持续升高…

python爬取sci论文等一系列网站---通用教程超详细教程

环境准备 确保安装了Python以及requests和BeautifulSoup库。 pip install requests beautifulsoup4确定爬取目标 选择一个含有SCI论文的网站&#xff0c;了解该网站的内容布局和数据结构。 &#xff08;1&#xff09;在浏览器中访问目标网站&#xff0c;右键点击页面并选择…

免费开源低代码平台种草推荐

从业20载&#xff0c;从当初的兴奋&#xff0c;到最后的麻木&#xff0c;甚至怀疑&#xff1a; 程序员是不是就是在不断的学习各种技术&#xff0c; 然后做着同样的重复劳动&#xff08;体力劳动&#xff09;&#xff0c;在各种业务系统上用各种技术做同样的增删改查。 对的&am…

每日两题 / 104. 二叉树的最大深度 102. 二叉树的层序遍历(LeetCode热题100)

104. 二叉树的最大深度 - 力扣&#xff08;LeetCode&#xff09; 递归判断&#xff0c;当前节点的最大深度为1 max(左节点的最大深度&#xff0c;右节点的最大深度) /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* …

C++ 函数重载

两个以上的函数&#xff0c;具有相同的函数名&#xff0c;但是形参的个数或者类型不同&#xff0c;编译器会根据实参的类型机个数的最佳来自动调用哪一个函数。 一 带默认形参值的函数 在定义函数时预先声明默认的形参值。调用时如果给出实参&#xff0c;则用实参初始化形…

为什么需要归档和管理合同

归档和管理合同是非常重要的&#xff0c;主要有以下几个原因&#xff1a; 1. 法律合规性&#xff1a;公司需要遵守法律和监管要求&#xff0c;合同是法律文件&#xff0c;涉及公司的权益和责任。归档和管理合同可以确保公司遵守法律法规&#xff0c;合同的内容和执行过程都符合…

《大数据分析-数据仓库项目实战》学习笔记

目录 基本概念 数据仓库 数据仓库整体技术架构 数据仓库主题 数据集市 数据仓库的血缘关系 数据仓库元数据管理 数据仓库的指标 数据仓库维度概念 HDFS Flume Hadoop Kafka 数据仓库分层模型 Superset 即席查询 Sqoop Atlas元数据管理 项目需求描述 系统目标…

AlibabaCloud微服务下的链路追踪系统实战详解

&#x1f680; 作者 &#xff1a;“二当家-小D” &#x1f680; 博主简介&#xff1a;⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人&#xff0c;8年开发架构经验&#xff0c;精通java,擅长分布式高并发架构,自动化压力测试&#xff0c;微服务容器化k…

拼多多投产比和成交出价哪个好

拼多多推广可以使用3an推客。3an推客&#xff08;CPS模式&#xff09;给商家提供的营销工具&#xff0c;由商家自主设置佣金比例&#xff0c;激励推广者去帮助商家推广商品链接&#xff0c;按最终有效交易金额支付佣金&#xff0c;不成交不扣费。是商家破零、积累基础销量的重要…

2024年大学生三下乡社会实践活动投稿注意事项

随着2024年夏季的热浪一同涌来的,是我校一年一度的“大学生三下乡”社会实践活动。作为一名积极参与其中的大学生,我满怀激情地投身于这项旨在促进农村发展的公益行动中。然而,当活动圆满落幕,轮到我承担起向各大媒体投稿、传播实践成果的重任时,却遭遇了一系列意想不到的挑战,…

拼多多投产比怎么计算?

拼多多投产比&#xff08;ROI&#xff09;的计算公式为&#xff1a;ROI 成交金额 / 花费 100%。也可以简单理解为&#xff1a;ROI 点击量 * 转化率 * 客单价 / (点击量 * 平均点击花费)。 拼多多推广可以使用3an推客。3an推客&#xff08;CPS模式&#xff09;给商家提供的营…