文章分类 - 数据结构
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
摘要:1 /* 2 * @lc app=leetcode.cn id=200 lang=c 3 * 4 * [200] 岛屿数量 5 * 6 * https://leetcode-cn.com/problems/number-of-islands/description/ 7 * 8 * algorith
阅读全文
摘要:1 /* 2 * @lc app=leetcode.cn id=315 lang=c 3 * 4 * [315] 计算右侧小于当前元素的个数 5 * 6 * https://leetcode-cn.com/problems/count-of-smaller-numbers-after-self/de
阅读全文
摘要:1 /* 2 * @lc app=leetcode.cn id=23 lang=c 3 * 4 * [23] 合并K个排序链表 5 * 6 * https://leetcode-cn.com/problems/merge-k-sorted-lists/description/ 7 * 8 * alg
阅读全文
摘要:1 /* 2 * @lc app=leetcode.cn id=695 lang=c 3 * 4 * [695] 岛屿的最大面积 5 * 6 * https://leetcode-cn.com/problems/max-area-of-island/description/ 7 * 8 * algo
阅读全文
摘要:1 /* 2 * @lc app=leetcode.cn id=1210 lang=c 3 * 4 * [1210] 穿过迷宫的最少移动次数 5 * 6 * https://leetcode-cn.com/problems/minimum-moves-to-reach-target-with-rot
阅读全文
摘要:/* * @lc app=leetcode.cn id=332 lang=c * * [332] 重新安排行程 * * https://leetcode-cn.com/problems/reconstruct-itinerary/description/ * * algorithms * Mediu
阅读全文
摘要:/* * @lc app=leetcode.cn id=684 lang=c * * [684] 冗余连接 * * https://leetcode-cn.com/problems/redundant-connection/description/ * * algorithms * Medium (
阅读全文
摘要:什么是字典树?叫前缀树更容易理解字典树的样子 Trie又被称为前缀树、字典树,所以当然是一棵树。上面这棵Trie树包含的字符串集合是{in, inn, int, tea, ten, to}。每个节点的编号是我们为了描述方便加上去的。树中的每一条边上都标识有一个字符。这些字符可以是任意一个字符集中的字
阅读全文
摘要:并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?) 来看一个实例,HDU1232畅通工程 首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你
阅读全文
摘要:深度优先 用递归的方法实现,用于解决连通性的问题 递归实现的本质是利用栈的先入后出的特性,其实完全可以用栈的数据结构来模拟,不用调用方法 广度优先 用队列来实现,解决最短路径的问题; 若涉及到权重,则队列也要相应的换成优先队列或索引优先队列,普通队列相当于权重都相等。
阅读全文
摘要:转自: https://blog.csdn.net/v_july_v/article/details/7041827 关注一些这个博客,其中讲了很多算法和数据结构的内容,编程等相关
阅读全文
摘要:链表应用示例如下: // // // 数据结构实现——栈 // // 用 链表 实现 // // // #include <iostream> using namespace std; typedef struct Node { int data; struct Node *next; }LNode
阅读全文
摘要:/* * @lc app=leetcode.cn id=622 lang=c * * [622] 设计循环队列 * * https://leetcode-cn.com/problems/design-circular-queue/description/ * * algorithms * Mediu
阅读全文
摘要:主要思路: 用两个栈来实现,一个栈负责输入数据的管理,另一个栈负责输出数据的管理,同时两者之间需要严格的数据传输,以防输出顺序错误; /* * @lc app=leetcode.cn id=232 lang=c * * [232] 用栈实现队列 * * https://leetcode-cn.com
阅读全文
摘要:// // // 数据结构实现——栈 // // 用 数组 实现 // // // #include <iostream> using namespace std; #define MAXSIZE 100 typedef struct { int data[MAXSIZE]; int topIdx;
阅读全文
摘要:转载自: https://www.cnblogs.com/nullzx/p/6624731.html 1. 优先队列与索引优先队列 优先队列的原理大家应该比较熟悉,本质上就是利用完全二叉树的结构实现以log2n的时间复杂度删除队列中的最小对象(这里以小堆顶为例)。完全二叉树又可以通过数组下标实现索引
阅读全文
摘要:转载自: http://blog.csdn.net/LLZK_/article/details/52829525 本文主要讲了如何使用c++来构建一个二叉树类,以及一些功能算法的实现。文中大部分函数的思想都是递归,其中赋值运算符重载有传统写法和现代写法两个版本,层序遍历是非递归,前、中、后序遍历有递
阅读全文
摘要:转载自: https://www.zhihu.com/question/21318658 前言 2015年03月第一次编写这个答案,之后于2016年01月和2018年03月分别进行整体修改。只适合于入门,评论中的一些问题参见集中回复。 正文 我觉得入门学习算法与数据结构时应包含三个部分: 选择一本合
阅读全文