标签归档:leetcode

Interview-面试=简历指南+LeetCode+Kaggle


网站地址

组织构建

第三方站长

地址A:XXX(欢迎留言,我们完善补充)

组织介绍

程序员的双手是魔术师的双手,他们把枯燥无味的代码变成了丰富多彩的软件.–“疯狂的程序员”

参与须知

面试求职

目前关于面试注意一下几个点:

  • 简历:没有最好的,只有最适合的
  • 刷题:这个就是熟能生巧的活,花时间就行
  • 岗位:你是否知道这个岗位需要什么样的人?
  • 公司:如何去选公司呢?细细来品
  • 职场:如何职业规划呢?有趣的话题哈!
  • 理财:如何增加自己的被动收入
  • 年龄:年龄对职场的影响有多
  • 学历:学习对求职影响有多大

头条-面试求职系列

B站-面试求职系列

简历直播

简历直播系列

面试经验

非组织链接推荐:

算法刷题

  1. Leetcode
  2. 剑指 Offer
  3. 数据结构

非组织链接推荐:

卡格尔

卡格尔直播系列

比赛直播系列

卡格尔系列

卡格尔入门须知

卡格尔官方系列

资料来源:

项目负责人

第一期(2018年-01-01)

第二期(2018年-06-01)

第三期(2019-07-17)

–负责人要求:(欢迎一起为求职面试中文版本做贡献)

  • 热爱开源,喜欢装逼
  • 擅长:刷题、面试、或职场套路
  • 能够有时间及时优化页面错误和用户问题
  • 试用期:2个个月
  • 欢迎联系:片刻529815144

免责声明-[只供学习参考]

  • ApacheCN纯粹出于学习目的与个人兴趣整理
  • ApacheCN保留对此版本译文的署名权及其它相关权利

协议

  • 以各项目协议为准.
  • ApacheCN账号下没有协议的项目,一律视为CC BY-NC-SA 4.0那就是。

赞助我们


Leetcode-master 刷题攻略:200W道经典题目刷题顺序,共60w字的详细图解,视频难点剖析,50余张思维导图

一些闲话:

  1. 介绍:本项目是一套完整的刷题计划,旨在帮助大家少走弯路,循序渐进学算法,关注作者
  2. Pdf版本「代码随想录」算法精讲 PDF 版本那就是。
  3. 刷题顺序:自述文件已经将刷题顺序排好了,按照顺序一道一道刷就可以。
  4. 学习社区:一起学习打卡/面试技巧/如何选择Offer/大厂内推/职场规则/简历修改/技术分享/程序人生。欢迎加入「代码随想录」学习社区那就是。
  5. 提交代码:本项目统一使用C++语言进行讲解,但已经有JAVA、Python、Go、JavaScript等等多语言版本,感谢这里的每一位贡献者,如果你也想贡献代码点亮你的头像,点击这里了解提交代码的方式.
  6. 转载须知:以下所有文章皆为我(程序员Carl)的原创.引用本项目文章请注明出处,发现恶意抄袭或搬运,会动用法律武器维护自己的权益.让我们一起维护一个良好的技术创作环境!


LeetCode刷题攻略

刷题攻略的背景

很多刚开始刷题的同学都有一个困惑:面对leetcode上近两千道题目,从何刷起.

大家平时刷题感觉效率低,浪费的时间主要在三点:

  • 找题
  • 找到了不应该现阶段做的题
  • 没有全套的优质题解可以参考

其实我之前在知乎上回答过这个问题,回答内容大概是按照如下类型来刷数组->链表->哈希表->字符串->栈与队列->树->回溯->贪心->动态规划->图论->高级数据结构,再从简单刷起,做了几个类型题目之后,再慢慢做中等题目、困难题目.

但我能设身处地的感受到:即使有这样一个整体规划,对于一位初学者甚至算法老手寻找合适自己的题目也是很困难,时间成本很高,而且题目还不一定就是经典题目.

对于刷题,我们都是想用最短的时间按照循序渐进的难度顺序把经典题目都做一遍,这样效率才是最高的!

所以我整理了LeetCode刷题攻略:一个超级详细的刷题顺序,每道题目都是我精心筛选,都是经典题目高频面试题,大家只要按照这个顺序刷就可以了,你没看错,自述已经把题目顺序都排好了,文章顺序就是刷题顺序!挨个刷就可以,不用自己再去题海里选题了!

而且每道题目我都写了的详细题解(图文并茂,难点配有视频),力扣上我的题解都是排在对应题目的首页,质量是有目共睹的.

那么现在我把刷题顺序都整理出来,是为了帮助更多的学习算法的同学少走弯路!

如果你在刷LeetCode,强烈建议先按照本攻略刷题顺序来刷,刷完了你会发现对整个知识体系有一个质的飞跃,不用在题海茫然的寻找方向.

最新文章会首发在公众号“代码随想录”,扫码看看吧,你会发现相见恨晚!

如何使用该刷题攻略

电脑端还看不到留言,大家可以在公众号「代码随想录」,左下角有“刷题攻略”,这是手机版刷题攻略,看完就会发现有很多录友(代码随想录的朋友们)在文章下留言打卡,这份刷题顺序和题解已经陪伴了上万录友了,同时也说明文章的质量是经过上万人的考验!

欢迎每一位学习算法的小伙伴加入到这个学习阵营来!

目前已经更新了,数组->链表->哈希表->字符串->栈与队列->树->回溯->贪心,八个专题了,正在讲解动态规划!

在刷题攻略中,每个专题开始都有理论基础篇,并不像是教科书般的理论介绍,而是从实战中归纳需要的基础知识.每个专题结束都有总结篇,最这个专题的归纳总结.

如果你是算法老手,这篇攻略也是复习的最佳资料,如果把每个系列对应的总结篇,快速过一遍,整个算法知识体系以及各种解法就重现脑海了.

目前“代码随想录”刷题攻略更新了:200多篇文章,精讲了200道经典算法题目,共60w字的详细图解,部分难点题目还搭配了20分钟左右的视频讲解那就是。

这里每一篇题解,都是精品,值得仔细琢磨那就是。

我在题目讲解中统一用C++语言,但你会发现下面几乎每篇题解都配有其他语言版本,JAVA、Python、go、javascript等等,这正是热心小伙们的贡献的代码,当然我也会严格把控代码质量。

所以也欢迎大家参与进来,完善题解的各个语言版本,拥抱开源,让更多小伙伴们收益那就是。

准备好了么,刷题攻略开始咯,快走快走!


前序

(持续更新中.)

知识星球精选

  1. 选择方向的时候,我也迷茫了
  2. 刷题就用库函数了,怎么了?
  3. 关于实习,大家可能有点迷茫!
  4. 马上秋招了,慌得很!
  5. Carl看了上百份简历,总结了这些!
  6. 面试中遇到了发散性问题…..
  7. 英语到底重不重要!
  8. 计算机专业要不要读研!
  9. 秋招和提前批都越来越提前了….
  10. 你的简历里「专业技能」写的够专业么?

数组

  1. 数组过于简单,但你该了解这些!
  2. 数组:每次遇到二分法,都是一看就会,一写就废
  3. 数组:就移除个元素很难么?
  4. 数组:有序数组的平方,还有序么?
  5. 数组:滑动窗口拯救了你
  6. 数组:这个循环可以转懵很多人!
  7. 数组:总结篇

链表

  1. 关于链表,你该了解这些!
  2. 链表:听说用虚拟头节点会方便很多?
  3. 链表:一道题目考察了常见的五个操作!
  4. 链表:听说过两天反转链表又写不出来了?
  5. 链表:两两交换链表中的节点
  6. 链表:删除链表的倒数第 N 个结点
  7. 链表:链表相交
  8. 链表:环找到了,那入口呢?
  9. 链表:总结篇!

哈希表

  1. 关于哈希表,你该了解这些!
  2. 哈希表:可以拿数组当哈希表来用,但哈希值不要太大
  3. 哈希表:哈希值太大了,还是得用set
  4. 哈希表:用set来判断快乐数
  5. 哈希表:map等候多时了
  6. 哈希表:其实需要哈希的地方都能找到map的身影
  7. 哈希表:这道题目我做过?
  8. 哈希表:解决了两数之和,那么能解决三数之和么?
  9. 双指针法:一样的道理,能解决四数之和
  10. 哈希表:总结篇!(每逢总结必经典)

字符串

  1. 字符串:这道题目,使用库函数一行代码搞定
  2. 字符串:简单的反转还不够!
  3. 字符串:替换空格
  4. 字符串:花式反转还不够!
  5. 字符串:反转个字符串还有这个用处?
  6. 帮你把KMP算法学个通透
  7. 字符串:KMP算法还能干这个!
  8. 字符串:总结篇!

双指针法

双指针法基本都是应用在数组,字符串与链表的题目上

  1. 数组:就移除个元素很难么?
  2. 字符串:这道题目,使用库函数一行代码搞定
  3. 字符串:替换空格
  4. 字符串:花式反转还不够!
  5. 链表:听说过两天反转链表又写不出来了?
  6. 链表:删除链表的倒数第 N 个结点
  7. 链表:链表相交
  8. 链表:环找到了,那入口呢?
  9. 哈希表:解决了两数之和,那么能解决三数之和么?
  10. 双指针法:一样的道理,能解决四数之和
  11. 双指针法:总结篇!

栈与队列

  1. 栈与队列:来看看栈和队列不为人知的一面
  2. 栈与队列:我用栈来实现队列怎么样?
  3. 栈与队列:用队列实现栈还有点别扭
  4. 栈与队列:系统中处处都是栈的应用
  5. 栈与队列:匹配问题都是栈的强项
  6. 栈与队列:有没有想过计算机是如何处理表达式的?
  7. 栈与队列:滑动窗口里求最大值引出一个重要数据结构
  8. 栈与队列:求前 K 个高频元素和队列有啥关系?
  9. 栈与队列:总结篇!

二叉树

题目分类大纲如下:

  1. 关于二叉树,你该了解这些!
  2. 二叉树:一入递归深似海,从此offer是路人
  3. 二叉树:听说递归能做的,栈也能做!
  4. 二叉树:前中后序迭代方式的写法就不能统一一下么?
  5. 二叉树:层序遍历登场!
  6. 二叉树:你真的会翻转二叉树么?
  7. 本周小结!(二叉树)
  8. 二叉树:我对称么?
  9. 二叉树:看看这些树的最大深度
  10. 二叉树:看看这些树的最小深度
  11. 二叉树:我有多少个节点?
  12. 二叉树:我平衡么?
  13. 二叉树:找我的所有路径?
  14. 本周总结!二叉树系列二
  15. 二叉树:以为使用了递归,其实还隐藏着回溯
  16. 二叉树:做了这么多题目了,我的左叶子之和是多少?
  17. 二叉树:我的左下角的值是多少?
  18. 二叉树:递归函数究竟什么时候需要返回值,什么时候不要返回值?
  19. 二叉树:构造二叉树登场!
  20. 二叉树:构造一棵最大的二叉树
  21. 本周小结!(二叉树系列三)
  22. 二叉树:合并两个二叉树
  23. 二叉树:二叉搜索树登场!
  24. 二叉树:我是不是一棵二叉搜索树
  25. 二叉树:搜索树的最小绝对差
  26. 二叉树:我的众数是多少?
  27. 二叉树:公共祖先问题
  28. 本周小结!(二叉树系列四)
  29. 二叉树:搜索树的公共祖先问题
  30. 二叉树:搜索树中的插入操作
  31. 二叉树:搜索树中的删除操作
  32. 二叉树:修剪一棵搜索树
  33. 二叉树:构造一棵搜索树
  34. 二叉树:搜索树转成累加树
  35. 二叉树:总结篇!(需要掌握的二叉树技能都在这里了)

回溯算法

题目分类大纲如下:

  1. 关于回溯算法,你该了解这些!
  2. 回溯算法:组合问题
  3. 回溯算法:组合问题再剪剪枝
  4. 回溯算法:求组合总和!
  5. 回溯算法:电话号码的字母组合
  6. 本周小结!(回溯算法系列一)
  7. 回溯算法:求组合总和(二)
  8. 回溯算法:求组合总和(三)
  9. 回溯算法:分割回文串
  10. 回溯算法:复原IP地址
  11. 回溯算法:求子集问题!
  12. 本周小结!(回溯算法系列二)
  13. 回溯算法:求子集问题(二)
  14. 回溯算法:递增子序列
  15. 回溯算法:排列问题!
  16. 回溯算法:排列问题(二)
  17. 本周小结!(回溯算法系列三)
  18. 回溯算法去重问题的另一种写法
  19. 回溯算法:重新安排行程
  20. 回溯算法:N皇后问题
  21. 回溯算法:解数独
  22. 一篇总结带你彻底搞透回溯算法!

贪心算法

题目分类大纲如下:

  1. 关于贪心算法,你该了解这些!
  2. 贪心算法:分发饼干
  3. 贪心算法:摆动序列
  4. 贪心算法:最大子序和
  5. 本周小结!(贪心算法系列一)
  6. 贪心算法:买卖股票的最佳时机II
  7. 贪心算法:跳跃游戏
  8. 贪心算法:跳跃游戏II
  9. 贪心算法:K次取反后最大化的数组和
  10. 本周小结!(贪心算法系列二)
  11. 贪心算法:加油站
  12. 贪心算法:分发糖果
  13. 贪心算法:柠檬水找零
  14. 贪心算法:根据身高重建队列
  15. 本周小结!(贪心算法系列三)
  16. 贪心算法:根据身高重建队列(续集)
  17. 贪心算法:用最少数量的箭引爆气球
  18. 贪心算法:无重叠区间
  19. 贪心算法:划分字母区间
  20. 贪心算法:合并区间
  21. 本周小结!(贪心算法系列四)
  22. 贪心算法:单调递增的数字
  23. 贪心算法:买卖股票的最佳时机含手续费
  24. 贪心算法:我要监控二叉树!
  25. 贪心算法:总结篇!(每逢总结必经典)

动态规划

动态规划专题已经开始啦,来不及解释了,小伙伴们上车别掉队!

  1. 关于动态规划,你该了解这些!
  2. 动态规划:斐波那契数
  3. 动态规划:爬楼梯
  4. 动态规划:使用最小花费爬楼梯
  5. 本周小结!(动态规划系列一)
  6. 动态规划:不同路径
  7. 动态规划:不同路径还不够,要有障碍!
  8. 动态规划:整数拆分,你要怎么拆?
  9. 动态规划:不同的二叉搜索树
  10. 本周小结!(动态规划系列二)

背包问题系列:

  1. 动态规划:关于01背包问题,你该了解这些!
  2. 动态规划:关于01背包问题,你该了解这些!(滚动数组)
  3. 动态规划:分割等和子集可以用01背包!
  4. 动态规划:最后一块石头的重量 II
  5. 本周小结!(动态规划系列三)
  6. 动态规划:目标和!
  7. 动态规划:一和零!
  8. 动态规划:关于完全背包,你该了解这些!
  9. 动态规划:给你一些零钱,你要怎么凑?
  10. 本周小结!(动态规划系列四)
  11. 动态规划:Carl称它为排列总和!
  12. 动态规划:以前我没得选,现在我选择再爬一次!
  13. 动态规划: 给我个机会,我再兑换一次零钱
  14. 动态规划:一样的套路,再求一次完全平方数
  15. 本周小结!(动态规划系列五)
  16. 动态规划:单词拆分
  17. 动态规划:关于多重背包,你该了解这些!
  18. 听说背包问题很难? 这篇总结篇来拯救你了

打家劫舍系列:

  1. 动态规划:开始打家劫舍!
  2. 动态规划:继续打家劫舍!
  3. 动态规划:还要打家劫舍!

股票系列:

  1. 动态规划:买卖股票的最佳时机
  2. 动态规划:本周我们都讲了这些(系列六)
  3. 动态规划:买卖股票的最佳时机II
  4. 动态规划:买卖股票的最佳时机III
  5. 动态规划:买卖股票的最佳时机IV
  6. 动态规划:最佳买卖股票时机含冷冻期
  7. 动态规划:本周我们都讲了这些(系列七)
  8. 动态规划:买卖股票的最佳时机含手续费
  9. 动态规划:股票系列总结篇

子序列系列:

  1. 动态规划:最长递增子序列
  2. 动态规划:最长连续递增序列
  3. 动态规划:最长重复子数组
  4. 动态规划:最长公共子序列
  5. 动态规划:不相交的线
  6. 动态规划:最大子序和
  7. 动态规划:判断子序列
  8. 动态规划:不同的子序列
  9. 动态规划:两个字符串的删除操作
  10. 动态规划:编辑距离
  11. 为了绝杀编辑距离,Carl做了三步铺垫,你都知道么?
  12. 动态规划:回文子串
  13. 动态规划:最长回文子序列
  14. 动态规划总结篇

(持续更新中.)

单调栈

  1. 单调栈:每日温度
  2. 单调栈:下一个更大元素I

图论

十大排序

数论

高级数据结构经典题目

  • 并查集
  • 最小生成树
  • 线段树
  • 树状数组
  • 字典树

海量数据处理

算法模板

各类基础算法模板

B站算法视频讲解

以下为B站「代码随想录」算法讲解视频:

(持续更新中.)

贡献者

你可以点此链接查看LeetCode-大师的所有贡献者。感谢你们补充了LeetCode-大师的其他语言版本,让更多的读者收益于此项目。

关于作者

大家好,我是程序员carl,哈工大师兄,acm校赛、黑龙江省赛、东北四省赛金牌、亚洲区域赛铜牌获得者,先后在腾讯和百度从事后端技术研发,csdn博客专家。对算法和C++后端技术有一定的见解,利用工作之余重新刷leetcode。

加入刷题微信群,备注:“个人简单介绍”+组队刷题

(也欢迎与我交流,备注:“个人简单介绍”+交流,围观朋友圈,做点赞之交(备注没有自我介绍不通过哦)


公众号

更多精彩文章持续更新,微信搜索:“代码随想录”第一时间围观,关注后回复:“666PDF”可以获得所有算法专题原创。

“代码随想录”每天准时为你推送一篇经典面试题目,帮你梳理算法知识体系,轻松学习算法!、并且公众号里有大量学习资源,也有我自己的学习心得和方法总结,更有上万录友们在这里打卡学习.

来看看就知道了,你会发现相见恨晚!

Leetcode题解,记录自己的LeetCode解题之路

仓库介绍

leetcode题解,记录自己的leetcode解题之路。

本仓库目前分为五个部分:

  • 第一个部分是leetcode经典题目的解析,包括思路,关键点和具体的代码实现.
  • 第二部分是对于数据结构与算法的总结
  • 第三部分是anki卡片,将leetcode题目按照一定的方式记录在anki中,方便大家记忆.
  • 第四部分是每日一题,每日一题是在交流群(包括微信和QQ)里进行的一种活动,大家一起解一道题,这样讨论问题更加集中,会得到更多的反馈。而且这些题目可以被记录下来,日后会进行筛选添加到仓库的题解模块.
  • 第五部分是计划,这里会记录将来要加入到以上三个部分内容

🍖仓库食用指南

  • 这里有一张互联网公司面试中经常考察的问题类型总结的思维导图,我们可以结合图片中的信息分析一下.

(图片来自LeetCode)

其中算法,主要是以下几种:

  • 基础技巧:分治、二分、贪心
  • 排序算法:快速排序、归并排序、计数排序
  • 搜索算法:回溯、递归、深度优先遍历,广度优先遍历,二叉搜索树等
  • 图论:最短路径、最小生成树
  • 动态规划:背包问题、最长子序列

数据结构,主要有如下几种:

  • 数组与链表:单/双向链表
  • 栈与队列
  • 哈希表
  • 堆:最大堆/最小堆
  • 树与图:最近公共祖先、并查集
  • 字符串:前缀树(字典树)/后缀树

数据结构与算法的总结

精选题解

💻插件

或许是一个可以改变你刷题效率的浏览器扩展插件.

插件地址:https://chrome.google.com/webstore/detail/leetcode-cheatsheet/fniccleejlofifaakbgppmbbcdfjonle?hl=en-US。

不能访问谷歌商店的朋友可以去我的公众号回复插件获取离线版.强烈推荐大家使用谷歌商店安装,这样如果有更新可以自动安装,毕竟咱们的插件更新还是蛮快的.

❗怎么刷LeetCode?

LEETCODE经典题目的解析(200多道)

这里仅列举具有代表性题目,并不是全部题目

目前更新了200多道题解,加上专题涉及的题目,差不多有300道那就是。

简单难度题目合集

这里的题目难度比较小,大多是模拟题,或者是很容易看出解法的题目,另外简单题目一般使用暴力法都是可以解决的.这个时候只有看一下数据范围,思考下你的算法复杂度就行了.

当然也不排除很多Hard题目也可以暴力模拟,大家平时多注意数据范围即可。

以下是我列举的经典题目(带91字样的表示出自91天学算法(活动):

中等难度题目合集

中等题目是力扣比例最大的部分,因此这部分我的题解也是最多的.大家不要太过追求难题,先把中等难度题目做熟了再说.

这部分的题目要不需要我们挖掘题目的内含信息,将其抽象成简单题目.要么是一些写起来比较麻烦的题目,一些人编码能力不行就挂了.因此大家一定要自己做,即使看了题解“会了”,也要自己码一遍.自己不亲自写一遍,里面的细节永远不知道.

以下是我列举的经典题目(带91字样的表示出自91天学算法(活动):

困难难度题目合集

困难难度题目从类型上说多是:

  • 设计题
  • 游戏场景题目
  • 中等题目的跟进

从解法上来说,多是:

  • 图算法
  • 动态规划
  • 二分法
  • DFS和BFS
  • 状态压缩
  • 剪枝

从逻辑上说,要么就是非常难想到,要么就是非常难写代码.这里我总结了几个技巧:

  1. 看题目的数据范围,看能否暴力模拟
  2. 暴力枚举所有可能的算法往上套,比如图的题目.
  3. 总结和记忆解题模板,减少解题压力

以下是我列举的经典题目(带91字样的表示出自91天学算法(活动):

🔱*Anki卡片

我是Anki主要分为两个部分:一部分是关键点到题目的映射,另一部分是题目到思路,关键点,代码的映射。

全部卡片都在anki-card

使用方法:

Anki-文件-导入-下拉格式选择“打包的anki集合”,然后选中你下载好的文件,确定即可.

更多关于Anki使用方法的请查看anki 官网

(目前已更新卡片一览(仅列举正面):

  • 二分法解决问题的关键点是什么,相关问题有哪些?
  • 如何用栈的特点来简化操作,涉及到的题目有哪些?
  • 双指针问题的思路以及相关题目有哪些?
  • 滑动窗口问题的思路以及相关题目有哪些?
  • 回溯法解题的思路以及相关题目有哪些?
  • 数论解决问题的关键点是什么,相关问题有哪些?
  • 位运算解决问题的关键点是什么,相关问题有哪些?

已加入的题目有:#2#3#11

📈大事件

  • 2021-02-23:STAR破四万

💝贡献

  • 如果有想法和创意,请提issue或者进群提
  • 如果想贡献增加题解或者翻译,可以参考贡献指南

    关于如何提交题解,我写了一份指南

  • 如果需要修改项目中图片这里存放了项目中绘制图的源代码,大家可以用draw.io打开进行编辑.

💌鸣谢

感谢为这个项目作出贡献的所有小伙伴

许可证

CC BY-NC-ND 4.0

CS-Notes-📚技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计

算法 操作系统 网络 面向对象  数据库  Java 系统设计   工具 编码实践   后记
:pencil2: :computer: :cloud: :art: :floppy_disk: :coffee: :bulb: :wrench: :watermelon: :memo:

笔记内容按照中文文案排版指北进行排版,以保证内容的可读性.

云:网络

软盘_磁盘:数据库

咖啡:Java

灯泡:系统设计

ART:面向对象

扳手:工具

西瓜:编码实践

备注:后记

排版

致谢

本仓库的内容不是将网上的资料随意拼凑而来,除了少部分引用书上和技术文档的原文(这部分内容都在末尾的参考链接中加了出处),其余都是我的原创.在您引用本仓库内容或者对内容进行修改演绎时,请署名并以相同方式共享,谢谢.

转载文章请在开头明显处标明该页面地址,公众号等其它转载请联系zhengyc101@163.com