- 博客(28)
- 资源 (4)
- 问答 (88)
- 收藏
- 关注
原创 程序员面试金典: 9.4树与图 4.5实现一个函数,检查一颗二叉树是否为二叉查找树
#include #include #include using namespace std;/*问题:实现一个函数,检查一颗二叉树是否为二叉查找树分析:二叉查找树,其实就是左孩子<结点<右孩子 判断根节点是否满足二叉查找树特性,只需要判断左右子树是否满足。输入:6(树中结点个数n)4 2 6 1 3 5(树中结点的值,接下来有n行,每i行第一个字符:'d'表示
2016-12-29 10:33:41 398
原创 程序员面试金典: 9.4树与图 4.4 在二叉树上创建包含某一深度上所有节点的链表
#include #include #include #include #include using namespace std;/*问题:给定一颗二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为D,则会创建出D个链表)。分析:题目的意思应该是深度为1的所有节点构成一个链表,深度为2的所有节点构成一个链表,....,也就是把 相同深度
2016-12-29 10:04:11 435
原创 程序员面试金典: 9.4树与图 4.3给定一个有序整数数组,元素各不相同且按升序排列,创建一颗高度最小的二叉查找树。 ---快速解法
#include #include #include #include #include #include #include using namespace std;/*问题:给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一颗高度最小的二叉查找树。分析:二叉查找树是左孩子<结点<右孩子。二叉查找树关键的部分应该是调整树的结点,使得平衡。高度最小
2016-12-28 17:43:14 555
原创 程序员面试金典: 9.4树与图 4.3给定一个有序整数数组,元素各不相同且按升序排列,创建一颗高度最小的二叉查找树。
#include #include using namespace std;/*问题:给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一颗高度最小的二叉查找树。分析:二叉查找树是左孩子<结点<右孩子。二叉查找树关键的部分应该是调整树的结点,使得平衡。高度最小 的二叉查找树,应该是平衡的二叉查找树。 中序遍历的结果是:左中右,那么遍历 问题转化为如何
2016-12-27 17:29:22 646
原创 程序员面试金典: 9.4树与图 4.2给定有向图,设计一个算法,找出两个节点之间是否存在一条路径。
#include #include #include #include using namespace std;/*问题:给定有向图,设计一个算法,找出两个节点之间是否存在一条路径。分析:有向图,无非是没有顶点的树,需要考虑顶点和边。 图的两种创建方式:邻接矩阵,邻接表。 找出两个节点之间是否存在一条路径。Dijstra:两点之间最短路径,Flord是任意两点最
2016-12-27 15:38:40 3444
原创 程序员面试金典: 9.4树与图 4.1实现一个函数检查二叉树是否平衡——O(N)时间解法
#include #include #include #include using namespace std;/*问题:实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两颗子树的高度差不超过1.分析:关于树的大部分问题都是和递归相关。 所以如果一棵树的左子树的高度和右子树各自平衡,且这两颗子树的高度之差不超过1即可。 递归基:
2016-12-27 10:13:25 401
原创 程序员面试金典: 9.4树与图 4.1实现一个函数检查二叉树是否平衡。
#include #include #include using namespace std;/*问题:实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两颗子树的高度差不超过1.分析:关于树的大部分问题都是和递归相关。 所以如果一棵树的左子树的高度和右子树各自平衡,且这两颗子树的高度之差不超过1即可。 递归基: isAVLT
2016-12-24 17:27:47 717
原创 程序员面试金典: 9.3栈与队列 3.7猫狗动物队列
#include #include #include #include using namespace std;/*问题:有家动物收容所只收容狗与猫,并且严格遵守“先进先出”原则。在收养该收容所的动物时,收养人只能收养所有动物中 “最老”(根据进入收容所的时间长短)的动物,或者,可以挑选猫或狗(同时必须收养此类动物中“最老”的)。换言之,收养人不能 自由挑选
2016-12-24 12:37:58 1498
原创 程序员面试金典: 9.3栈与队列 3.6编写程序,按升序对栈进行排序(即最大元素位于栈顶)
#include #include #include #include using namespace std;/*问题:编写程序,按升序对栈进行排序(即最大元素位于栈顶)。最多只能使用一个额外的栈存放临时数据,但不得将 元素赋值到别的数据结构中(如数组)。该栈支持如下操作: push、pop、peek和isEmpty。分析:栈后进先出,但是需要对栈排序,而且允许使用
2016-12-24 10:23:31 1455
原创 程序员面试金典: 9.3栈与队列 3.5实现一个MyQueue类,该类用两个栈来实现一个队列
#include #include #include #include using namespace std;/*问题:实现一个MyQueue类,该类用两个栈来实现一个队列分析:设两个栈分别为栈1和栈2.栈1负责压入,栈2负责弹出。一个例子:假设压入1,2,3,然后弹出1,压入4,。模拟过程:栈1:321栈2:空然后需要弹出1,此时需要将栈1所有元素压入栈2,此
2016-12-23 15:02:04 785
原创 程序员面试金典: 9.3栈与队列 3.4汉诺塔问题
#include #include using namespace std;/*问题:汉诺塔问题。N个盘子按从小到大放在第一根柱子上。还有第二个和第三个柱子,请将 所有盘子从第一个柱子移动到第三个柱子上。分析:N个盘子:步骤1:需要将N-1个盘子,从第1个柱子拿到第2个柱子,步骤2:再从第1个柱子将最下面的盘子从第1个柱子拿到第3个柱子步骤3:将N-1个盘子从第2
2016-12-23 14:16:57 463
原创 程序员面试金典: 9.3栈与队列 3.3设计一个栈,栈到一定高度就会另外建栈。
#include #include #include #include #include using namespace std;/*问题:设想有一堆盘子,堆太高可能会到倒下来。因此,在现实生活中,盘子堆到一定高度时,就会 另外堆一堆盘子。请实现数据结构SetOfStacks,模拟这种行为。SetOfStacks应该由多个栈组成, 并且在前一个栈填满时新建一个
2016-12-23 10:23:18 379
原创 程序员面试金典: 9.3栈与队列 3.2设计一个栈,除pop与push方法,支持返回栈最小元素min方法,时间复杂度均为O(1)
#include #include #include #include using namespace std;/*问题:请设计一个栈,除pop与push方法,还支持min方法,可返回栈元素中的最小值。 push,pop,min三个方法的时间复杂度为O(1)分析:能否再普通栈的基础上维持一个最小元素的值,获取最小值时就返回它。 关键是如何找到最小值下面的
2016-12-23 09:00:01 697
原创 程序员面试金典: 9.3栈与队列 3.1描述如何只用一个数组来实现三个栈
#include #include #include #include using namespace std;/*问题:描述如何只用一个数组实现三个栈分析:栈是后进先出,先把问题简化为如何用一个数组实现一个栈 数组每次插入时插入在最后,取出时取出最后一个元素即可 暂未想到。难道对数组三等分,每个生成一个栈?书上解法:1 将栈三等分,维持一个数组,数组中每个
2016-12-22 10:19:03 509
原创 程序员面试金典: 9.2链表 2.7检查链表是否为回文
#include #include #include using namespace std;/*问题:编写一个函数,检查链表是否为回文分析:所谓回文,也就是对称。先找到中间位置处,然后将链表中元素放入栈中 然后从头结点往后,依次取出栈中元素进行比较输入:5(链表长度)1 2 3 2 151 2 3 2 341 2 2 141 2 2 3输出:y
2016-12-21 17:24:51 386
原创 程序员面试金典: 9.2链表 2.6给定有环链表,实现算法返回环路的开头节点
#include #include using namespace std;/*问题:给定一个有环链表,实现一个算法返回环路的开头节点分析:快慢指针,一个每次走一步,一个每次走两步,如果能够相遇,必定存在环 现在关键是如何找到环路初始节点未解决:关键是要寻找相遇点y,环起始点x,环的长度L 三者之间的关系,目前关系忘了书上分析:设头结点距离环的起始点距离为L,设从环
2016-12-21 17:00:16 482
原创 程序员面试金典: 9.2链表 2.5对两个用链表表示的整数求和
#include #include using namespace std;const int MAXSIZE = 1000;/*问题:给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是 个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。分析:比如两个数分别是123,789,由于个位在首部,得到如下的两个数 3 2
2016-12-21 15:02:28 795
原创 程序员面试金典: 9.2链表 2.4以给定值x为基准将链表分割成两部分
#include #include using namespace std;/*问题:以给定值x为基准将链表分隔成两部分,所有小于x的结点排在大于或等于x的结点之前分析:本质上是一个划分,可以采用前后两个指针,一个从前向后,一个从后向前 从前向后的,如果碰到前面小于x,则继续向后,否则令枢轴元素等于当前元素 从后向前,如果当前值大于x,则继续向前,否则令枢轴元素
2016-12-21 12:33:41 3014
原创 程序员面试金典: 9.2链表 2.2找出单向链表中倒数第k个节点
#include #include using namespace std;/*问题:实现一个算法,找出单项链表中倒数第k个结点分析:这个应该设置两个指针,举个例子:一共6个节点,找到倒数第2个节点,实际上找到的就是第5个节点= N - k + 1最好的方式就是,一个指针找到第5个节点的时候,另一指针刚好到第6个节点1 2 3 4 5 6第一个指针走到N-k+1时,第二个
2016-12-21 10:05:27 283
原创 程序员面试金典: 9.2链表 2.1移除未排序链表中重复的节点
#include #include #include using namespace std;const int MAXSIZE = 10000;/*问题:编写代码,移除未排序链表中的重复节点分析:删除重复节点,关键未排序,如果按照不排序做,那么第一遍需要统计所有元素及出现次数, 第二遍扫描的时候,对于重复节点,没删除一次,计数器减1. 时间复杂度为O(N)
2016-12-21 09:31:50 718
原创 程序员面试金典: 9.1数组与字符串 8判断两个字符串中一个字符串是否由另一个字符串旋转而成
#include #include #include using namespace std;/*问题:假定有一个方法isSubstring,可以检查一个单词是否为其他字符串的子串。给定两个字符串s1和s2.请编写代码检查s2是否为 s1旋转而成,要求只能调用一次isSubstring。(比如,waterbottle是erbottlewat旋转后的字符串)分析:如果先
2016-12-20 17:02:19 381
原创 程序员面试金典: 9.1数组与字符串 7若M*N矩阵中某个元素为0,则将其所在行与列清零
#include #include using namespace std;const int MAXSIZE = 100;int matrix[MAXSIZE][MAXSIZE];/*问题:编写一个算法,若M*N矩阵中某个元素为0,则将其所在的行与列清零。分析:暴力破解的话,需要找到该元素为[i][j],将其所在行清零,然后列清零。 审题不清。这里为0的元素可能不止
2016-12-20 16:31:34 1170
原创 程序员面试金典: 9.1数组与字符串 6将图像旋转90度
#include #include using namespace std;const int MAXSIZE = 100;int matrix[MAXSIZE][MAXSIZE];/*问题:给定一副由N*N矩阵表示的图像,其中每个像素的大小为4字节,编写一个方法,将 图像旋转90度。不占用额外控件能否做到?分析:4字节,这里就是int。关键应该是找到旋转公式。0
2016-12-20 15:26:44 379
原创 程序员面试金典: 9.1数组与字符串 5字符串压缩
#include #include #include #include using namespace std;/*问题:利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。 比如,字符串aabcccccaaa会变为a2b1c5a3.若“压缩”后的字符串没有变短, 则返回原先的字符串。分析:本质上就是寻找相邻相同字母的问题。当相邻两个字符不同时,开
2016-12-20 12:11:51 259
原创 程序员面试金典: 9.1数组与字符串 4字符串中空格全部替换为"%20"
#include #include #include #include using namespace std;/*问题:编写一个方法,将字符串中的空格全部替换为“%20”。 假定该字符串尾部留有足够的控件存放新增字符,并且知道字符串的真实长度分析:先扫描字符串,计算出空格总数n,字符串长度L,由于一个空格和“%20”相差两个字符, 因此替换后的字符串总长
2016-12-20 11:21:53 294
原创 程序员面试金典: 9.1数组与字符串 3判断一个字符串字符重新排列后是否可变成另一个字符串
#include #include #include #include using namespace std;/*问题:给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串分析:字符串排列后的能否变成另一个字符串=对两个字符串排序,排序后比较若相同,则说明经过排列后 其中一个字符串可以变成另一个字符串 如果两个字符串不等,肯定不
2016-12-20 10:40:07 499
原创 程序员面试金典: 9.1数组与字符串 2写翻转字符串函数reverse(char* str)
#include #include using namespace std;const int MAXSIZE = 10000;/*问题:用C或C++实现void reverse(char* str)函数,即翻转一个null结尾的字符串分析:寻找到str最后的下标对应字符ch,然后从字符串末尾开始将最好的方法就是找到字符串的开始和末尾,将首尾交换后,然后向中间继续靠近输入:
2016-12-20 10:11:00 459
原创 程序员面试金典: 9.1数组与字符串 1判断字符串所有字符全都不同
#include #include #include using namespace std;const int MAXSIZE = 256;/*问题:实现算法,确定字符串所有字符是否全都不同思路:假设为ASCII字符,那么最多256个,如果字符串长度大于256,必定重复,如果<=256个字符,那么设定一个布尔数组,初始化该数组每个元素为否,表明没有重复出现,如果某字符首
2016-12-20 09:37:27 326
微软面试100题系列by_July
2014-07-29
超越c++标准库——boost程序库导论
2014-07-29
grafana如何接入gnocchi数据
2017-05-27
配置gnocchi作为Grafana数据源报错
2017-05-18
devstack报错generate-subunit fail
2017-05-08
请教各位朋友cv2的python版本中imwrite无法生成带有中文路径的图片?
2016-06-07
关于Linux的sed命令在行首添加空格的问题?
2016-05-22
Linux:使用sed命令替换时,如何在前面添加四个空格呢
2016-05-22
各位朋友好,请教sed查询到“[client]”这一行后,在这一行下面追加一行新的内容
2016-05-22
请教各位大神,如何用python提取出两幅图像中不同的部分?
2015-12-28
请教各位大神,AutoHotkey如何实现二维数组?
2015-11-29
请教各位算法大神,acm一道题:赋权无向图的最小权值遍历用什么算法(存在负权值)?
2015-11-25
请教各位大神,为什么django下载的zip压缩包文件名中包含中文的就乱码啊?
2015-10-28
请教各位朋友们,为什么html中的video标签不能播放时长大于5s的视频?
2015-10-25
请教朋友们,python3.4如何安装相对应的第三方库
2015-10-08
django如何在用户登录后返回到原来来页面,并保持登陆状态
2015-09-28
django如何将mysql中表的内容通过models.py在网页端显示
2015-09-18
python+django能够同时使用mongodb和mysql两种数据库引擎吗?
2015-09-17
django实现**.zip包下载报错内存使用过大
2015-08-03
无法访问部署在mac服务器到虚拟机Ubuntu端口映射做成的服务器上的网站
2015-07-25
xshell无法通过外网连接VBox中的虚拟机
2015-07-23
苹果笔记本主机如何将文件传送到virtual box中安装的ubuntu虚拟机中
2015-07-22
在ubuntu环境下执行python程序,报错 segment error
2015-07-18
django取出pymongo中存储的中文图片路径后,读取该路径在网页上展示没有出现图片
2015-07-16
读取python遍历中文目录得到的文件路径报错
2015-07-10
python中的os.walk函数为什么遍历带有中文的路径时就失败?
2015-07-09
pynlpir在ubuntu下为什么不能对带有中文路径的文件分词
2015-06-22
struts中的gdc:defineCollection这句话是什么意思
2015-05-13
struts下的jsp文件中html:select 下的各个属性有哪些
2015-05-12
html视频播放进度条上如何加入点号,并且鼠标移动到点号上显示关键帧图片
2015-05-04
如何在html图片上方叠加一个半透明颜色层,并在半透明颜色层上叠加文字
2015-05-03
ffmpeg提取视频中的帧保存为图片的序号如何从0开始
2015-04-30
ffmpeg 截取图片的时间对应于原来视频中的时间点如何获取
2015-04-30
ubuntu环境下使用ffmpeg获取视频总时间的命令该怎么写?
2015-04-30
如何在python中调用ffmpeg的命令行语句
2015-04-30
ffmpeg -vf中的命令参数-vf是什么意思
2015-04-30
use pyffmpeg install on win7,but has errors
2015-04-29
python中unicode对象与str对象中汉字的长度不同这是为什么
2015-04-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人