- 博客(37)
- 收藏
- 关注
原创 不同的路径-lintcode
http://www.lintcode.com/zh-cn/problem/unique-paths/有一个机器人的位于一个 m × n 个网格左上角。机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角。问有多少条不同的路径?样例给出 m = 3 和 n = 3, 返回 6.给出 m = 4 和 n = 5, 返回 35.典型的动态规划问题,画一个表格,表示从左上角出发,到该格子的...
2018-04-01 17:42:21
267
原创 lintcode-链表求和
http://www.lintcode.com/zh-cn/problem/add-two-numbers/两个链表求和,我们只需要模仿CPU里的加法器,设置一个S位,一个C位进位即可/** * Definition of singly-linked-list: * class ListNode { * public: * int val; * ListNode *nex...
2018-03-30 23:07:27
352
原创 合并两个排序链表 -lintcode
http://www.lintcode.com/zh-cn/problem/merge-two-sorted-lists/合并两个排序链表A,B有很多种方法,其中最简单的就是创建一个空链表C,之后依次将A,B的元素插入C即可。这次我是直接将B中的元素插入A,不需要额外的链表C/** * Definition of singly-linked-list: * class ListNode { ...
2018-03-19 15:54:43
375
原创 骰子求和
骰子求和-lintcodehttp://www.lintcode.com/zh-cn/problem/dices-sum/每一次求概率都能利用上一次求得的概率#include "map"#define pmap map<int, double>class Solution {public: /** * @param n an integer * @r...
2018-03-05 14:23:10
382
原创 严蔚敏迪杰斯特拉算法改进
前两个月在实习,刚回来又忙着找工作的事情,又好久没写博客了。想起来好久没碰数据结构了,捡起那本学校的教材–严蔚敏的数据结构,看了看她的迪杰斯特拉算法。书上的代码相当简洁,但是有一个问题是只能找到路径上的点,并没有将其顺序存起来,所以我就对其进行了一丢丢的该进。把代码用C++重写了一遍,在VS 2015上能编译通过#include "iostream"#include "vector"using
2017-10-19 20:38:27
949
原创 二叉树的非递归先序、中序和后序遍历
这个学期一直在忙着准备面试,复习,都没有看新的书,也很久没有写Blog了。 之前写过二叉树的遍历,但是现在回去看实在是不忍直视,不仅写的复杂,而且还不一定正确。现在把二叉树的三种非递归遍历重写一遍。二叉树的遍历是一个递归的过程,天然具备递归的属性,而非递归遍历的关键是栈的运用。其实任何一种递归算法都有一个对应的非递归算法。先放上二叉树类的定义class Tree {public: T
2017-07-01 14:30:39
571
原创 Python实现二叉树存储结构的堆排序
既然用Python实现了二叉树,当然要写点东西练练手。网络上堆排序的教程很多,但是却几乎都是以数组存储的数,直接以下标访问元素,当然这样是完全没有问题的,实现简单,访问速度快,也容易理解。但是以练手的角度来看,我还是写了一个二叉树存储结构的堆排序其中最难的问题就是交换二叉树中两个节点。因为一个节点最多与三个节点相连,那么两个节点互换,就需要考虑到5个节点之间的关系,也需要判断是左右
2017-03-20 09:29:20
872
原创 信号阻塞问题
今天在看《深入理解计算机系统》第8章的内容时,对于图8-31的代码有一些疑惑. 为什么会是阻塞第二个信号,自己在ubuntu14.04(内核为linux3.13.0-24)上敲了一遍代码
2016-10-24 22:27:29
476
原创 二叉树实现哈夫曼码
最近完成一个数据结构的作业,哈夫曼编码,实现了1.查看字母的哈夫曼码2.哈夫曼码转文字3.文字转哈夫曼码这几个功能哈夫曼码主要用于压缩编码,将字符用二进制(0,1)编码代替,能过使出现概率大的字母的二进制码短,而我们会根据字符的出现概率给各个字符赋一个“权重”,再根据权重构造一个二叉树核心便是如何构造这个哈夫曼二叉树那么二叉树的结
2016-03-31 00:07:22
1512
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人