2013年11月24日
摘要: 剑指Offer - 九度1505 - 两个链表的第一个公共结点2013-11-24 20:09题目描述:输入两个链表,找出它们的第一个公共结点。输入:输入可能包含多个测试样例。对于每个测试案例,输入的第一行为两个整数m和n(1 4 using namespace std; 5 6 struct ListNode{ 7 int val; 8 struct ListNode *next; 9 ListNode(int _val = 0): val(_val), next(NULL){} 10 }; 11 12 void delete_list(ListNod... 阅读全文
posted @ 2013-11-24 20:26 zhuli19901106 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1391 - 顺时针打印矩阵2013-11-24 04:55题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: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.输入:输入可能包含多个测试样例,对于每个测试案例,输入的第一行包括两个整数m和n(1 4 using namespace std; 5 6 int m, n; 7 const int MAXN = 1005; 8 int a[MAXN][MAXN]; 9. 阅读全文
posted @ 2013-11-24 05:00 zhuli19901106 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1389 - 变态跳台阶2013-11-24 04:20题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。输入:输入可能包含多个测试样例,对于每个测试案例,输入包括一个整数n(1 4 using namespace std; 5 6 int main() 7 { 8 int n; 9 10 while(scanf("%d", &n) == 1){11 printf("%lld\n", 1LL << (n - 1));12 }13 14 ... 阅读全文
posted @ 2013-11-24 04:44 zhuli19901106 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1388 - 跳台阶2013-11-24 03:43题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。输入:输入可能包含多个测试样例,对于每个测试案例,输入包括一个整数n(1 4 using namespace std; 5 6 int main() 7 { 8 int n, i; 9 long long int f1, f2, f3;10 11 while(scanf("%d", &n) == 1){12 if(n == 0){13 printf... 阅读全文
posted @ 2013-11-24 03:48 zhuli19901106 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1387 - 斐波那契数列2013-11-24 03:08题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。斐波那契数列的定义如下:输入:输入可能包含多个测试样例,对于每个测试案例,输入包括一个整数n(1= 3 数学推导上,可以用特征根方程求出x^2 = x + 1的俩根 x = (1 土 sqrt(5)) / 2,编程的话你当然不会这么无聊去惹出一对无理数来。 方法一,从f[1]、f[2]开始逐个计算f[3]到f[n],求出f[n]。时间复杂度O(n),空间复杂度O(1)。 方法二,用矩阵来计算。 将[f[n + 1]... 阅读全文
posted @ 2013-11-24 03:41 zhuli19901106 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1386 - 旋转数组的最小数字2013-11-24 01:57题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。输入:输入可能包含多个测试样例,对于每个测试案例,输入的第一行为一个整数n(1= a[i + 1]的那个位置,就能确定a[i + 1]就是最小元素了。对于k = 0的情况,整个数组没旋转,那么会一直扫到数组结尾,加一句话特殊处理。应该避免为这么一个特殊case使用%运算,因为性能会出现O(n 阅读全文
posted @ 2013-11-24 02:57 zhuli19901106 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1385 - 重建二叉树2013-11-23 23:53题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的后序遍历序列。输入:输入可能包含多个测试样例,对于每个测试案例,输入的第一行为一个整数n(1 4 #include 5 using namespace std; 6 7 void construct_tree(vector &a, vector &b, v 阅读全文
posted @ 2013-11-24 00:48 zhuli19901106 阅读(311) 评论(0) 推荐(0) 编辑