数据结构
_大雄
可是我没哆啦A梦呀!
展开
-
全排列问题
全排列问题给定一个一个序列,输出他的全排列比如{1,2,3}.全排列就是:1,2,31,3,22,1,32,3,13,1,23,2,1可以先看一个例子。给定一个序列输出下一个比它大的序列例如:arr{1,2,3,5,4,2}比它大的下一个排列就是{1,2,4,3,5,2}具体怎么做的?1.从arr.len-1位置到0开始找arr[i]>arr[i-1].找到之后...原创 2020-03-30 16:48:41 · 166 阅读 · 0 评论 -
单调栈的理解与应用
下午在leetcodde刷题的时候,碰到了这个题。下一个更大元素 II给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例 1:输入: [1,2,1]输出: [2,-1,2]解释: 第一个...原创 2020-02-22 17:45:09 · 179 阅读 · 0 评论 -
[编程题]迷宫问题
链接:https://www.nowcoder.com/questionTerminal/cf24906056f4488c9ddb132f317e03bc来源:牛客网定义一个二维数组N*M(其中2<=N<=10;2<=M<=10),如5 × 5数组下所示:int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0...原创 2019-12-03 16:21:34 · 918 阅读 · 0 评论 -
猫狗收容所(C++)
题目描述有家动物收容所只收留猫和狗,但有特殊的收养规则,收养人有两种收养方式,第一种为直接收养所有动物中最早进入收容所的,第二种为选择收养的动物类型(猫或狗),并收养该种动物中最早进入收容所的。给定一个操作序列int [] [2] ope(C++中为vector<vector>)代表所有事件。若第一个元素为1,则代表有动物进入收容所,第二个元素为动物的编号,正数代表狗,负数代表猫;...原创 2019-11-05 20:28:44 · 1535 阅读 · 0 评论 -
顺序表和链表的优缺点比较
顺序表和链表的优缺点比较顺序表(静态分配)优点:(1).结构简单,易于理解;(2).存储空间连续,方便随机访问表中的每个元素,时间复杂度为O(1);(3).不需要再为表示节点间的逻辑关系而增加额外的存储空间;(4).尾插,尾删效率高,时间复杂度为O(1);(5).CPU缓存利用率高;缺点:(1)插入和删除比较慢,时间复杂度为O(N);(2)长度固定,必须在分配内存之前确定数组长...原创 2019-04-20 23:01:04 · 3251 阅读 · 0 评论 -
循环队列的顺序存储
循环队列的顺序存储队列是一种操作受限(先进先出)的线性表,今天我们来实现队列的顺序存储结构。在队列的顺序存储中,用一组地址连续的存储单元依次存放队头到对尾的数据元素,即为顺序队列。定义一个静态数组,每次尾插元素,即构成队列。第一种方法设置一个指针size作为计数(记录有效元素的个数)(1).入队列,时间复杂度O(1)。(2).出队列,每次出第一个元素,将第一个元素之后的元素依次向前搬...原创 2019-05-06 21:53:46 · 1014 阅读 · 0 评论 -
二叉树的非递归后序遍历
第一种方法二叉树的后序遍历算法比先序和中序的遍历算法要复杂一些。其出栈条件有两种情况:栈顶元素所指向的节点的左子树和右子树均为空;栈顶元素所指向的节点的左子树和右子树均被访问过。 第二种情况,加一个指针pre,来纪录此节点是否被访问过了,进栈顺序是先进右子树,再进左子树void PostOrderNor(BTNode* Root){ Stack s; StackInit(&...原创 2019-08-02 23:13:15 · 230 阅读 · 0 评论 -
反转链表 II
题目:反转链表 II反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤ m ≤ n ≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL来源:力扣(LeetCode)链接:https://leetcode-cn.com...原创 2019-09-07 12:08:34 · 75 阅读 · 0 评论 -
147. 对链表进行插入排序
题目:对链表进行插入排序插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到所有输入数据插入完为止。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5-&...原创 2019-09-08 10:15:28 · 124 阅读 · 0 评论