
算法与数据结构
rookiedragon
Rome was not built in one day.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
lintcode 106. 排序列表转换为二分查找树
题目:给出一个所有元素以升序排序的单链表,将它转换成一棵高度平衡的二分查找树思路:每次取一个中间元素,递归。class Solution {public: /* * @param head: The first node of linked list. * @return: a tree node */ TreeNode * func(int left,int ...原创 2018-04-14 16:02:46 · 195 阅读 · 0 评论 -
lintcode 70. 二叉树的层次遍历 II
题目:给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历)样例给出一棵二叉树 {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7按照从下往上的层次遍历为:[ [15,7], [9,20], [3]]思路:二叉树的层次遍历,实质上是属于图的广度搜索,最后只需要用re...原创 2018-04-14 20:11:05 · 254 阅读 · 0 评论 -
判断有几块连通区域
随笔写的,感觉用得到首先是输入一个数组由1和0组成最后求四连通区域有几个如:1 1 1 00 0 0 10 0 0 01 1 0 0 有三个连通区域思路如下:采用递归思想一开始我是这么想的,按行遍历,若遇到一个数字为1,那么先看下面的是不是1,然后再看上面的,左面的,右面的,递归操作,但是这会出现问题,我们可能会产生重复判断,这样我加入了一个检查数组check,问题解决,代码如下:#include...原创 2018-04-10 13:12:39 · 3778 阅读 · 0 评论 -
lintcode12. 带最小值操作的栈
最近研究逆向,再加上考试,一直没刷题。逆向算是基本入门了,过几天有空写一篇入门级的逆向分享出来。实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。 注意事项如果堆栈中没有数字则不能进行min方法的调用样例如下操作:push(1),pop(),push(2),push(3),min(), pu...原创 2018-04-27 23:20:12 · 153 阅读 · 0 评论