程序面试
kupeThinkPoem
这个作者很懒,什么都没留下…
展开
-
动态规划实战-最长公共子序列
参考:https://blog.csdn.net/wwlcsdn000/article/details/78600167?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task大家可以先看看前一篇文章动态规划实战,上篇文章分析了动态规划问题求解的三种方...原创 2020-03-06 11:41:49 · 485 阅读 · 0 评论 -
动态规划实例解析
参考:https://www.zhihu.com/question/39948290https://baijiahao.baidu.com/s?id=1635388976060265522&wfr=spider&for=pc乔治·桑塔亚纳说过,“那些遗忘过去的人注定要重蹈覆辙。”这句话放在问题求解过程中也同样适用。不懂动态规划的人会在解决过的问题上再次浪费时间,懂的人则会事...原创 2020-03-04 16:47:03 · 345 阅读 · 0 评论 -
处理这10个记录的最长时间与最短时间
参考:http://edu.21cn.com/ruankao/g_185_967613-1.htm数据存储在磁盘上的排列方式会影响I/O服务的总时间。假设每磁道划分成10个物理块,每块存放1个逻辑记录。逻辑记录R1,R2,…,R10存放在同一个磁道上,记录的安排顺序如下表所示:物理块123456原创 2013-10-07 10:30:17 · 3016 阅读 · 0 评论 -
兄弟单词查询
一个单词单词字母交换,可得另一个单词,如army->mary,成为兄弟单词。提供一个单词,在字典中找到它的兄弟。描述数据结构和查询过程。分析:网上对这个问题有好多解法。我用计数排序的方法来解决这个问题。任何一个单词(假设都是小写)中的一个字母的ASCII码值的范围为97-(97+26)。兄弟单词的字母都是一样的,只是顺序不同。我们设两个数组比如A[26],B[26],遍历单词中的字母。单词的字原创 2013-09-11 15:27:46 · 1197 阅读 · 0 评论 -
两个房间 每间房间三盏灯
问题:有两个房间,一间房里有三盏灯,另一间房有控制着三盏灯的三个开关, 这两个房间是 分割开的,从一间里不能看到另一间的情况。 现在要求受训者分别进这两房间一次,然后判断出这三盏灯分别是由哪个开关控制的。 有什么办法呢?原创 2013-08-31 17:54:14 · 2466 阅读 · 0 评论 -
把二元查找树转变成排序的双向链表
1.把二元查找树转变成排序的双向链表题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。10/ \6 14/ \ / \4 8 12 16转换成排序的双向链表4=6=8=10=12=14=16。 二元查找树: 它首先要是一棵二元树,在这基础上它或者是一棵空树;或者是具有下列性质的二元树:原创 2013-08-29 17:40:40 · 1072 阅读 · 0 评论 -
设计包含min函数的栈
问题:设计包含min函数的栈(栈) 定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。 要求函数min、push以及pop的时间复杂度都是O(1)。 解答:push 和pop的时间复杂度都是O(1),这个很好理解,创建个栈即可。但是min的复杂度也是O(1),每次push,pop后,调用min的复杂度也得是O(1)。这就要求栈中的每个元素都要存一个每个元素到栈底元素的最小原创 2013-08-29 22:05:23 · 963 阅读 · 0 评论 -
分金条
参考:http://www.cnblogs.com/ylbtech/archive/2013/02/22/2921771.html你让一些人为你工作了七天,你要用一根金条作为报酬。金条被分成七小块,每天给出一块。 如果你只能将金条切割两次,你怎样分给这些工人?解答:只能切割两次,并且每天都要给金块。 首先把金条看出成7小块的组合切割两次分割的方式:1 1 5, 1 2 4原创 2013-08-31 17:34:50 · 1132 阅读 · 0 评论 -
求子数组的最大和
输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。 方法一、穷举法 列举所有的连续数组。列举方法,首先可以选择在原创 2013-08-29 17:15:12 · 934 阅读 · 0 评论 -
在字符串中查找最长重复子串
如何在字符串中查找最长重复子串?比如字符串"abcdtttabcd"的最长重复子串为“abcd”,"cabcabca"的最长重复字串为“cabca”,"cabcabcacabcabca"的最长重复字符串为“cabcabca”。分析: 重复子串的起始位置如何?如果子串1的开始位置为i,那么子串1的重复子串(设为子串2)的开始位置最小为i+1。变量i从0开始遍历字符串,对于每个变原创 2013-09-08 17:43:06 · 1923 阅读 · 0 评论