自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 Leetcode数据结构&算法:二叉搜索树

一、介绍二叉搜索树(BST)是二叉树的一种特殊表示形式,它满足如下特性:每个节点中的值必须大于(或等于)存储在其左侧子树中的任何值。 每个节点中的值必须小于(或等于)存储在其右子树中的任何值。像普通的二叉树一样,我们可以按照前序、中序和后序来遍历一个二叉搜索树。但是值得注意的是,对于二叉搜索树,我们可以通过中序遍历得到一个递增的有序序列。因此,中序遍历是二叉搜索树中最常用的遍历...

2019-11-18 17:32:00 246

原创 Leetcode数据结构&算法:二叉树

一、介绍树 是一种经常用到的数据结构,用来模拟具有树状结构性质的数据集合。树里的每一个节点有一个根植和一个包含所有子节点的列表。从图的观点来看,树也可视为一个拥有N 个节点和 N-1条边的一个有向无环图。二叉树是一种更为典型的树树状结构。如它名字所描述的那样,二叉树是每个节点最多有两个子树的树结构,通常子树被称作“左子树”和“右子树”。二、树的遍历树的遍历分为以下几种:...

2019-11-15 19:15:06 216

原创 Leetcode数据结构&算法:二分查找

一、介绍二分查找,描述了在有序集合中搜索特定值的过程。二分查找中使用的术语:目标 Target —— 你要查找的值 索引 Index —— 你要查找的当前位置 左、右指示符 Left,Right —— 我们用来维持查找空间的指标 中间指示符 Mid —— 我们用来应用条件来确定我们应该向左查找还是向右查找的索引二分查找是一种在每次比较之后将查找空间一分为二的算法。每次...

2019-11-15 18:28:56 150

原创 Leetcode数据结构&算法:哈希表

一、简介哈希表是一种使用哈希函数组织数据,以支持快速插入和搜索的数据结构。有两种不同类型的哈希表:哈希集合和哈希映射。哈希集合是集合数据结构的实现之一,用于存储非重复值。 哈希映射是映射 数据结构的实现之一,用于存储(key, value)键值对。在标准模板库的帮助下,哈希表是易于使用的。大多数常见语言(如Java,C ++ 和 Python)都支持哈希集合和哈希映射。通过选择...

2019-11-14 18:50:25 292 1

原创 Leetcode数据结构&算法:链表

一、简介链表分为单链表和双链表单链表:单链表中的每个结点不仅包含值,还包含链接到下一个结点的引用字段。双链表:双链表以类似单链表的方式工作,与之相比额外还有一个引用字段,称为“prev”字段。有了这个额外的字段,能够知道当前结点的前一个结点。链表的特点:我们不能在常量级的时间内访问随机位置。 我们必须从头部遍历才能得到我们想要的第一个结点。 在最坏的情况...

2019-11-13 17:30:39 196

原创 Leetcode数据结构&算法:数组和字符串

一、介绍数组就不介绍了,一维、二维、动态等,最基本的数据结构吧。字符串使用时需要注意,在不同的语言里,情况不一样。数组和字符串就简单记录下了。(1)比较函数字符串有它自己的比较函数。我们可以用 “==”来比较两个字符串吗?这取决于下面这个问题的答案:我们使用的语言是否支持运算符重载?如果答案是yes (例如 C++)。我们可以使用“==”来比较两...

2019-11-13 16:11:37 157

原创 Leetcode算法题:岛屿数量(BFS&DFS)

给定一个由'1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 1:输入:11110110101100000000输出:1示例2:输入:11000110000010000011输出: 3思路:把一座岛的每一个‘1’都访问过...

2019-11-11 17:21:54 574 1

原创 Leetcode算法题:打开转盘锁(BFS)

打开转盘锁你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' 。每个拨轮可以自由旋转:例如把 '9' 变为 '0','0' 变为 '9' 。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 '0000' ,一个代表四个拨轮的数字的字符串。列表 deadend...

2019-11-11 15:06:46 598

原创 Leetcode数据结构&算法:栈和深度优先搜索(DFS)

一、介绍在 LIFO 数据结构中,将首先处理添加到队列中的最新元素。 插入操作,在栈中被称作入栈 push ,总是在堆栈的末尾添加一个新元素 删除操作,退栈 pop ,将始终在末尾删除一个元素。二、栈实现栈的实现比队列容易。动态数组足以实现堆栈结构。Leetcode提供的参考如下:#include <iostream>class MyStack { ...

2019-11-07 23:26:57 350

原创 Leetcode数据结构&算法:队列和广度优先搜索(BFS)

一、介绍在 FIFO 数据结构中,将首先处理添加到队列中的第一个元素。如上图所示,队列是典型的 FIFO 数据结构。 插入(insert)操作也称作入队(enqueue),新元素始终被添加在队列的末尾。 删除(delete)操作也被称为出队(dequeue)。 你只能移除第一个元素。 入队是队尾指针给最后一个赋值,出队只是移动了队首的指针而已。 内存资源有限,使用循环队列。二、队...

2019-11-07 21:16:07 339

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除