由于LeetCode上的算法题很多涉及到一些基础的数据结构,为了更好的理解后续更新的一些复杂题目的动画,推出一个新系列 —–《图解数据结构》,主要使用动画来描述常见的数据结构和算法。本系列包括十大…
从简单的线性数据结构开始:栈与队列
在计算机领域离不开算法和数据结构,而在数据结构中尤为重要与基础的便是两个线性数据结构:栈与队列,本文将简单的介绍栈(Stack)和队列(Queue)的实现 栈与队列 栈 (Stack)是一种后进先出(last in fi…
几道和散列(哈希)表有关的面试题
image 散列表概念 散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找…
剑指 offer 第一题: 二维数组中的查找
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 题目分析 ima…
五分钟搞定一道算法题:Reverse Linked List
image LeetCode上第206号问题:Reverse Linked List 题目 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4-…
五分钟学会理解二叉树的前序遍历
LeetCode上第144 号问题:二叉树的前序遍历 题目 给定一个二叉树,返回它的 前序 遍历。 示例: 输入: [1,null,2,3] image 输出: [1,2,3] 进阶: 递归算法很简单,你可以通过迭代算法…
五分钟搞定一道算法题:Move Zeros
image leetcode上第283号问题: Move Zeros 给定一个数组nums,写一个函数,将数组中所有的0挪到数组的末尾,⽽维持其他所有非0元素的相对位置。 举例: nums = [0, 1, 0, 3, …
【图解数据结构】一组动画彻底理解二叉树三种遍历
二叉树的遍历是指从根结点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问一次且仅被访问一次。 在二叉树的遍历中存在三种较为常用的遍历方式:前序遍历、中序遍历、后序遍历。接下来我将尝试着用三组动画向读者详细的…
「算法与数据结构」从入门到进阶吐血整理推荐书单
推荐一下「算法与数据结构」从入门到进阶的书单。 一.入门系列 这些书籍通过图片、打比方等通俗易懂的方法来讲述,让你能达到懂一些基础算法,线性表,堆栈,队列,树,图,DP算法,背包问题等,不要求会实现,但是看过以下这些书对…