数据结构
(刘*牛)
这个作者很懒,什么都没留下…
展开
-
474. 一和零
leetcode-474. 一和零原创 2022-11-02 22:52:26 · 280 阅读 · 1 评论 -
416. 分割等和子集
leetcode-416. 分割等和子集原创 2022-11-01 08:01:47 · 147 阅读 · 0 评论 -
491. 递增子序列
491. 递增子序列-leetcode原创 2022-10-21 08:01:13 · 171 阅读 · 0 评论 -
图的遍历
图的遍历图的遍历有两种遍历方式,深度优先遍历和广度优先遍历深度优先遍历:是和树的前序遍历方式相似,优先遍历离图的起点远的节点,遍历的方法是通过 栈 数据结构来实现的广度优先遍历:是和树的层序遍历方式相似,优先遍历离图的起点近的一层的节点,遍历的方法是通过 队列 数据结构来实现的...原创 2020-04-16 15:28:53 · 163 阅读 · 0 评论 -
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。
题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)分析:通过建立一个辅助栈,然后按照入栈和出栈的顺序进行判断,看是否可以通过入栈出栈顺序...原创 2019-11-11 07:21:49 · 492 阅读 · 0 评论 -
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
题目:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。分析:因为栈设计到压入和弹出,使用单一的全局变量很难做到对栈中所有元素的最小值进行保存,所以使用一个辅助栈minStack来对栈中最小元素进行实时统计。代码实现:class Solution {public:stack normalStack;stack minStack;v...原创 2019-11-11 06:50:59 · 225 阅读 · 0 评论 -
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.实现如下:vector printMatrix(vector<vector > matrix) {vector ...原创 2019-11-08 22:07:09 · 550 阅读 · 0 评论 -
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。分析:通过使用数字1来不断左移,对输入的数进行不断检测,然后就可以检测出输入的数的二进制形式中有多少个1了因为一般的int都是32位,所以在实现的时候只需要不断左移32次即可检测完成具体代码实现如下所示:int NumberOf1(int n) {if (n == 0) {return 0;}int sum...原创 2019-11-07 07:06:56 · 96 阅读 · 0 评论 -
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则
题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。分析:在不破坏原有的两个链表的情况下,只能采用尾插法实现对应功能,通过不断申请新的链表节点来生成新的链表;如果可以破坏原有的两个链表,那么可以通过不断的取原有两个链表的节点来实现不破坏原有两个链表的实现代码如下所示:/*struct ListNode {int val;struct ...原创 2019-11-07 06:50:02 · 164 阅读 · 0 评论