![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指Offer
文章平均质量分 65
littledou2015
真正了不起的程序员对自己程序的每一个字节都了如指掌。
展开
-
题目1510:替换空格
时间限制:1 秒内存限制:128 兆题目描述:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。输入:每个输入文件仅包含一组测试样例。对于每组测试案例,输入一行代表要处理的字符串。输出:对应每个测试案例,原创 2015-05-27 20:00:30 · 354 阅读 · 0 评论 -
题目1521:二叉树的镜像
时间限制:1 秒内存限制:128 兆题目描述:输入一个二叉树,输出其镜像。输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为一个整数n(0Ci=’d’表示第i个节点有两子孩子,紧接着是左孩子编号和右孩子编号。Ci=’l’表示第i个节点有一个左孩子,紧接着是左孩子的编号。Ci=’r’表示第原创 2015-05-28 19:58:20 · 529 阅读 · 0 评论 -
题目1391:顺时针打印矩阵
时间限制:1 秒内存限制:32 兆题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:1 2 3 45 6 7 89 10 11 1213 14 15 16则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.输入:输入可能包含多个测试样例,对于每个测原创 2015-05-28 20:27:08 · 528 阅读 · 0 评论 -
题目1523:从上往下打印二叉树
时间限制:1 秒内存限制:128 兆题目描述:从上往下打印出二叉树的每个节点,同层节点从左至右打印。输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行一个整数n(1Ci=’d’表示第i个节点有两子孩子,紧接着是左孩子编号和右孩子编号。Ci=’l’表示第i个节点有一个左孩子,紧接着是左孩子的编号原创 2015-05-28 21:23:39 · 714 阅读 · 0 评论 -
题目1366:栈的压入、弹出序列
时间限制:1 秒内存限制:32 兆题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。输入:每个测试案例包括3行:第一行为1个整数原创 2015-05-28 21:12:01 · 516 阅读 · 0 评论 -
题目1367:二叉搜索树的后序遍历序列
时间限制:1 秒内存限制:32 兆题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。输入:每个测试案例包括2行:第一行为1个整数n(1第二行包含n个整数,表示这个数组,数组中的数的范围是[0,100000000]。输出:对应每个测试案例,原创 2015-05-28 21:45:11 · 488 阅读 · 0 评论 -
题目1524:复杂链表的复制
时间限制:1 秒内存限制:128 兆题目描述:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为一个整数n (1接下来有n个数,表示链表节点中的值。接下来有n个数Ti,Ti表示第i个节点的另一个原创 2015-05-28 22:22:33 · 407 阅读 · 0 评论 -
题目1518:反转链表
时间限制:1 秒内存限制:128 兆题目描述:输入一个链表,反转链表后,输出链表的所有元素。(hint : 请务必使用链表)输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为一个整数n(0输入的第二行包含n个整数t(0输出:对应每个测试案例,以此输出链表反转后的元原创 2015-05-28 16:27:16 · 679 阅读 · 0 评论 -
题目1368:二叉树中和为某一值的路径
时间限制:1 秒内存限制:32 兆题目描述:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。输入:每个测试案例包括n+1行:第一行为2个整数n,k(1接下来有n行。这n行中每行为3个整数vi,leftnode,rightnode,vi表示第i个结点的值,l原创 2015-05-28 22:12:46 · 616 阅读 · 0 评论 -
题目1503:二叉搜索树与双向链表
时间限制:1 秒内存限制:128 兆题目描述:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。输入:输入可能包含多个测试样例。对于每个测试案例,输入的第一行为一个数n(0接下来的n行,每行为一个二叉搜索树的先序遍历序列,其中左右子树若为空则用0代替。原创 2015-06-02 21:36:16 · 471 阅读 · 0 评论 -
题目1369:字符串的排列
题目描述:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入:每个测试案例包括1行。输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。输出:对应每组数据,按字典序输出所有排列。样例输入:abcBC原创 2015-06-02 22:33:23 · 579 阅读 · 0 评论 -
题目1370:数组中出现次数超过一半的数字
时间限制:1 秒内存限制:32 兆题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。输入:每个测试案例包括2行:第一行输入一个整数n(1第二行输入n个整数,表示数组中的每个元素,这n个整数的范围是[原创 2015-06-02 22:39:12 · 641 阅读 · 0 评论 -
题目1371:最小的K个数
时间限制:1 秒内存限制:32 兆题目描述:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。输入:每个测试案例包括2行:第一行为2个整数n,k(1第二行包含n个整数,表示这n个数,数组中的数的范围是[0,1000 000 000]。输出:对应每个测试案例,输出最原创 2015-06-02 23:01:34 · 755 阅读 · 0 评论 -
题目1372:最大子向量和(连续子数组的最大和)
时间限制:1 秒内存限制:32 兆题目描述:HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天JOBDU测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大原创 2015-06-04 11:37:53 · 698 阅读 · 0 评论 -
题目1520:树的子结构
时间限制:1 秒内存限制:128 兆题目描述:输入两颗二叉树A,B,判断B是不是A的子结构。输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行一个整数n,m(1输出:对应每个测试案例,若B是A的子树输出”YES”(不包含引号)。否则,输出“NO”(不包含引号)。原创 2015-05-28 18:06:12 · 444 阅读 · 0 评论 -
题目1522:包含min函数的栈
时间限制:1 秒内存限制:128 兆题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为一个整数n(1接下来有n行,每行开始有一个字母Ci。Ci=’s’时,接下有一个数字k,代表将k压入栈。Ci=’o’时,弹出栈顶原创 2015-05-28 20:55:08 · 413 阅读 · 0 评论 -
题目1511:从尾到头打印链表
时间限制:1 秒内存限制:128 兆题目描述:输入一个链表,从尾到头打印链表每个节点的值。输入:每个输入文件仅包含一组测试样例。每一组测试案例包含多行,每行一个大于0的整数,代表一个链表的节点。第一行是链表第一个节点的值,依次类推。当输入到-1时代表链表输入完毕。-1本身不属于链表。输出:对应每个测试案例,以从原创 2015-05-27 20:19:56 · 439 阅读 · 0 评论 -
题目1384:二维数组中的查找
时间限制:1 秒内存限制:32 兆题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。输入:输入可能包含多个测试样例,对于每个测试案例,输入的第一行为两个整数m和n(1输入的第二行包括一个整数t(1接下来的m行,每行有n个数,代原创 2015-05-27 17:34:18 · 92 阅读 · 0 评论 -
题目1385:重建二叉树
1 秒内存限制:32 兆题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的后序遍历序列。输入:输入可能包含多个测试样例,对于每个测试案例,输入的第原创 2015-05-27 21:40:21 · 388 阅读 · 0 评论 -
题目1512:用两个栈实现队列
时间限制:1 秒内存限制:128 兆题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。输入:每个输入文件包含一个测试样例。对于每个测试样例,第一行输入一个n(1接下来的n行,每行输入一个队列操作:1. PUSH X 向队列中push一个整数x(x>=0)原创 2015-05-27 21:54:47 · 403 阅读 · 0 评论 -
题目1386:旋转数组的最小数字
时间限制:1 秒内存限制:32 兆题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。输入:输入可能包含多个测试样例,对于每个测试案例,输入的第一行为一个整数n(1输入的第二行包括原创 2015-05-27 22:15:48 · 444 阅读 · 0 评论 -
题目1387:斐波那契数列
1 秒内存限制:32 兆题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。斐波那契数列的定义如下:输入:输入可能包含多个测试样例,对于每个测试案例,输入包括一个整数n(1输出:对应每个测试案例,输出第n项斐波那契数列的值。样例输入:3样例输出:2方法原创 2015-05-28 14:18:48 · 418 阅读 · 0 评论 -
题目1389:变态跳台阶
1 秒内存限制:32 兆题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。输入:输入可能包含多个测试样例,对于每个测试案例,输入包括一个整数n(1输出:对应每个测试案例,输出该青蛙跳上一个n级的台阶总共有多少种跳法。样例输入:6样例输出:32原创 2015-05-28 14:47:54 · 386 阅读 · 0 评论 -
题目1390:矩形覆盖
时间限制:1 秒内存限制:32 兆题目描述:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?输入:输入可能包含多个测试样例,对于每个测试案例,输入包括一个整数n(1输出:对应每个测试案例,输出用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有的方法原创 2015-05-28 14:49:57 · 342 阅读 · 0 评论 -
题目1513:二进制中1的个数
时间限制:1 秒内存限制:128 兆题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。输入:输入可能包含多个测试样例。对于每个输入文件,第一行输入一个整数T,代表测试样例的数量。对于每个测试样例输入为一个整数。。n保证是int范围内的一个整数。输出:对应每个测试案例,输出一个整数原创 2015-05-28 15:07:50 · 603 阅读 · 0 评论 -
题目1514:数值的整数次方
时间限制:1 秒内存限制:128 兆题目描述:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。输入:输入可能包含多个测试样例。对于每个输入文件,第一行输入一个整数T,表示测试案例的数目,接下来的T行每行输入一个浮点数base和一个整数exponent,两个数中间用一个空格隔开。原创 2015-05-28 15:42:47 · 345 阅读 · 0 评论 -
题目1515:打印1到最大的N位数
时间限制:1 秒内存限制:128 兆题目描述:给定一个数字N,打印从1到最大的N位数。输入:每个输入文件仅包含一组测试样例。对于每个测试案例,输入一个数字N(1输出:对应每个测试案例,依次打印从1到最大的N位数。样例输入:1样例输出:123456789原创 2015-05-28 15:45:03 · 380 阅读 · 0 评论 -
题目1516:调整数组顺序使奇数位于偶数前面
时间限制:1 秒内存限制:128 兆题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。输入:每个输入文件包含一组测试案例。对于每个测试案例,第一行输入一个n,代表该数组中数字的个数。接下来的一行输原创 2015-05-28 16:04:04 · 376 阅读 · 0 评论 -
题目1519:合并两个排序的链表
时间限制:1 秒内存限制:128 兆题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。(hint: 请务必使用链表。)输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为两个整数n和m(0下面一行包括n个数t(1输出:对应原创 2015-05-28 16:30:26 · 472 阅读 · 0 评论 -
队列实现插入,弹出,找到最大值和最小值的操作
去年10月份左右的时候,一位师兄曾说到他的一篇面试题,好像是实现一个队列,这个队列包含插入,弹出,找到最大值和最小值的操作。对于实现一个栈,这个栈包含插入,弹出,找到最大值和最小值的操作,这个栈的实现相对于上面队列的实现更简单。先说栈的实现:使用三个栈来保存原栈,栈最大值和栈最小值。stack st;stack maxst;stack minst;void push原创 2015-06-05 12:01:54 · 3316 阅读 · 1 评论