算法编程题
五癫
武汉理工大学软件工程
展开
-
算法编程题1-二叉树的按层遍历(含换行)
题型:二叉树的按层遍历1.针对二叉树的宽度优先遍历2.宽度优先遍历常使用队列结构3.面试中,改题目经常对换行有所要求具体实例:给定一棵二叉树的头结点head,请按照大家现在看到的方式打印12 34 5 67 8此题的思考点在于如何打印换行用两个变量来解决问题: last:表示正在打印的当前行的最右节点原创 2017-08-03 10:44:43 · 748 阅读 · 0 评论 -
算法编程题3-字符串旋转词问题
如果一个字符串str,把字符串str前面任意部分挪到后面去形成的字符串叫做str的旋转词。比如str=“1234”,str的旋转词为“1234”,"2341","3412",“4123”给定两个旋转词a和b,请判断a和b是否互为旋转词如果旋转词的长度为n,则最优解时间复杂度为O(N)1.判断str1与str2是否长度相等2.如果长度相等,生成str1+str1的长字符串原创 2017-08-03 13:49:47 · 663 阅读 · 0 评论 -
算法编程题2-二叉树的序列化和反序列化
,二叉树的序列化:.二叉树根据某种规则转换为字符串的过程(为什么要有这种操作,可以把二叉树序列化成字符串后保存在文件中)二叉树的反序列化: 根据某种规则把字符串转换成二叉树的表示形式序列化的方式:1.根据先序遍历序列化2.根据中序遍历序列化3.根据后序遍历序列化4.按层序列化题目实例:二叉树被记录成文件的过程叫做二叉树的序列化,通过文件内容重建原来二原创 2017-08-03 13:31:29 · 576 阅读 · 0 评论 -
算法编程题-判断一颗树中是否有与另一棵树拓扑结构完全相同的子树
题目:普通解法:二叉树遍历+匹配时间复杂度O(N*M) N:代表t1节点数 M:代表t2节点数最优解法为二叉树序列化+KMP算法时间复杂度O(M+N)二叉树t1序列化 -> 字符串str1二叉树t2序列化 -> 字符串str2KMP算法判断str1中是否含有str2如果str1包含str2,说明t1某棵子树于t2一致,否则t1中没有任何一颗子树与原创 2017-08-04 12:57:30 · 786 阅读 · 0 评论 -
算法编程题-字符串互为变形词问题
给定两个字符串str1和str2,如果str1和str2中出现的字符种类一样且每种字符出现的次数也一样,那么str1和str2互为变形词,请实现函数判断两个字符串是否互为变形词举例:str1 = “123”,str2 = “231”。返回truestr1 = “123”,str2 = "2331",返回false解决方案:使用哈希表做字符计数str1 ->哈希表1(对s原创 2017-08-06 20:18:01 · 797 阅读 · 0 评论 -
算法编程题4-单词逆序问题
给定一个字符串str,请在单词间做逆序调整举例:"when I see your smile" 逆序成"smile your see I when”方案一:1.实现将字符串局部所有字符逆序的函数f2.利用f将字符串所有字符逆序3.找到逆序后的字符串中每一个单词的区域,利用f将每一个单词的区域逆序原创 2017-08-07 12:10:18 · 727 阅读 · 0 评论 -
算法编程题5-字符串部分移位问题
给定一个字符串str,和一个整数i,i代表str中的位置,将str[0..i] 移到右侧,str[i+1,N-1]移到左侧举例:str = "ABCDE",i =2,将str调整为"DEABC"。要求,时间复杂度为O(N),额外空间复杂度为O(1)解决方案:1.把str整体做逆序调整2.把str[0..i]部分做逆序调整3.把str[i+1..N-1]座逆序调整原创 2017-08-07 12:54:21 · 453 阅读 · 0 评论 -
算法系列-topk问题
1.问题描述有N(N>>10000)个整数,求出其中的前K个最大的数。(称作Top k或者Top 10)2.思考过程若解答者脑袋中存储的现成数据结构很少,第一反应就是将整个整数序列排序,然后取前K个,即为前k个最大的数。然后问题就变成了怎样将超大整数集合排序的问题然而,我们碰到问题时,要仔细分析问题中给予我们的尽可能利用的条件,就像数学解析,我们要充分利用他们特征。此题中,原创 2017-08-28 11:33:35 · 512 阅读 · 0 评论 -
编程题练习1-元素查找
题目描述:有一个排过序的数组,包含n个整数,但是这个数组向左进行了一定长度的移位,例如,原数组为[1,2,3,4,5,6],向左移位5个位置即变成了[6,1,2,3,4,5],现在对于移位后的数组,需要查找某个元素的位置。请设计一个复杂度为log级别的算法完成这个任务。给定一个int数组A,为移位后的数组,同时给定数组大小n和需要查找的元素的值x,请返回x的位置(位置从零开始)。保证数原创 2017-09-19 10:49:31 · 679 阅读 · 0 评论