算法与数据结构
文章平均质量分 67
包括一些算法书的感想,做leetcode中遇到的问题。
joker1993
这个作者很懒,什么都没留下…
展开
-
Cspiration Edward老师讲如何刷LeetCode题
前言今天早上看了关于youtube上Cspiration Edward关于如何快速刷题的攻略,时长比较长,大概一个小时,但内容是干货满满的,这篇文章主要总结下这个视频中的几个关键点。快速刷题Edward主要说了下如果自己刷题应该注意的要点。自己刷题主要分为三遍:第一遍第一次刷题注重基础。 按照类型刷题。按照分类顺序表刷前400道。 第一遍直接看答案。比如sliding window,treemap。第一遍初学者的学习状态应该是下面这样的:不要创造数据结构、算法,而是要使用.原创 2020-10-16 10:13:25 · 955 阅读 · 2 评论 -
LeetCode刷题思路:Cspiration+花花酱
目前知乎上主要推荐的刷题up主有两个:1、Cspiration的Edward,优点是品质高、循序渐进,但是他的课程是收费的,主要面向突击找工作人群,有效期2个月,适合突击学习。https://cspiration.com/leetcodeClassification2、花花酱的youtube视频,优点是免费的课程,但没有章法。https://www.youtube.com/c/HuaHuaLeetCode/playlists,3、BackToBack SWE的youtube。https://ww原创 2020-10-13 09:01:47 · 1845 阅读 · 0 评论 -
leetcode刷题——Trie
前言在之前的多叉树学习中,我们学会了基本的遍历与搜索,今天来看一个N叉树的经典应用——前缀树。什么是字典树在面试中,我们经常会看到这样的题目:说一下搜索框中的自动补全技术是如何实现的? Word中的单词检查是怎样做到的? IP路由是什么原理(最长前缀匹配)?这些题目都涉及到了前缀的匹配问题,以及查找到数据集中同一前缀的单词问题(1)。我们最开始的思路是使用哈希表的技术,将所有...原创 2019-12-02 13:08:16 · 148 阅读 · 0 评论 -
leetcode刷题——Heap就是优先队列吗?
前言最近在做python爬虫项目,爬虫项目在数据结构与算法和操作系统这边其实涉及到两个问题:1个是有优先队列管理和去重,另一个是协程代替线程,减少内存消耗,今天这篇文章我们主要是通过刷leetcode的heap结构来认识heap与优先队列的关系。从爬虫引发的思考我们在分析Scrapy的原理时候,分析过Scrapy的querylib模块对优先队列的,使用的是一个字典表,以key作为优先级...原创 2020-01-11 18:08:00 · 310 阅读 · 0 评论 -
leetcode刷题中遇到的宝藏资源
码农找工作系列,知乎上很不错的算法系列,可以按照问题导向识别算法和数据结构,与leetcode刷题思维正好相反,它总结了常见的问题模式:1. 滑动窗口。2. 双指针。3. 快慢指针。4. 区间合并。5. 循环排序。6. 原地反转链表。7. 树上的BFS。8. 树上的DFS。9. 双堆。10. 子集。11. 变种二分。12. 最大前K个元素。13. ...原创 2019-11-23 15:45:46 · 269 阅读 · 0 评论 -
leetcode刷题——BinarySearchTree
前言在刷完二叉树和N叉树的教程卡片后,我们终于来到了更经典的二查搜索树问题。特性二叉树的特性是左节点的数值小于中序节点小于右节点,中序遍历的时候为升序。在做题当中基本使用递归进行深度搜索解决问题。有一类问题是对比两个二叉树,看是否相等,求合并等。典型题:938-range-sum-of-bst:求某一区间内的节点的值。利用了二叉搜索树的特性:只要在任一边界内,就继续把任...原创 2019-11-18 22:02:16 · 104 阅读 · 0 评论 -
leetcode刷题——N-aryTree
前言在完成二叉树的遍历后,我们看N叉树,教程中分为两部分介绍N-aryTree:遍历与递归遍历N叉树的遍历也分为深度优先搜索(DFS)和广度优先搜索(BFS)。DFS中只有前序遍历和后序遍历,因为有了多个子节点,中序遍历中到底在哪个子节点后遍历这个问题,一般不做考虑。前序遍历先访问根节点,然后依次遍历子节点。后序遍历先依次遍历字节点,然后访问根节点。在教程卡中,列...原创 2019-11-11 10:21:07 · 157 阅读 · 0 评论 -
leetcode刷题——BinaryTree
前言终于刷到了二叉树这一个经典的题目,之所以说它经典,是因为它涉及的知识点很多。从数据结构的存储上来看,它与链表最相近,写起来也更复杂。同时遍历涉及到策略,最基本也分为深度优先搜索和广度优先搜索,深度优先搜索又分为前序、中序、后序。而解题思路又可以分为递归和迭代两种解法。递归本身就属于一种比较抽象的方式,虽然写起来可能相对简单,但想起来还是比较麻烦,要确定好递归的步骤,每步返回的值,以...原创 2019-11-10 17:41:35 · 157 阅读 · 0 评论 -
leetcode刷题——LinkedList
前言链表数据结构属于链式数据结构(链表、树、图)中最简单的一种形式,在题目中主要是考察遍历、复制、倒序、增加节点、删除节点等操作,上周我用了3天时间刷完了教程,做了大概20道题目。常见操作与编程技巧一个链表中的节点可以用下面来表示(python语言):class ListNode(object): def __init__(self, x): self.v...原创 2019-11-04 23:05:18 · 195 阅读 · 0 评论 -
leetcode刷题——HashTable
前言本周主要对HashTable进行了复习,用了2天的晚上时间看完了教程,然后用了1天时间做了难度为easy的题目,目前总体对散列表的用法有了一些认识。HashTable知识点hashtable主要是运用hash方法,将数据映射到一段连续或者分散的内存地址上,以便于在O(1)的时间内寻找、插入数据。hashtable分为两种表示形式,分别应对不同的问题:hashset。hash...原创 2019-10-25 16:06:48 · 258 阅读 · 0 评论