2013年11月23日
摘要: 剑指Offer - 九度1384 - 二维数组中的查找2013-11-23 23:23题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。输入:输入可能包含多个测试样例,对于每个测试案例,输入的第一行为两个整数m和n(1 4 using namespace std; 5 6 const int MAXN = 1005; 7 int a[MAXN][MAXN]; 8 int x, y; 9 10 int main()11 {12 int i, j;13 i... 阅读全文
posted @ 2013-11-23 23:53 zhuli19901106 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1372 - 最大子向量和(连续子数组的最大和)2013-11-23 16:25题目描述:HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天JOBDU测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?输入:输入有多组数据,每组测试数据包括两行。第一行为一个整数n(0 msum则更新msum,如果su 阅读全文
posted @ 2013-11-23 22:46 zhuli19901106 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1371 - 最小的K个数2013-11-23 15:45题目描述:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。输入:每个测试案例包括2行:第一行为2个整数n,k(1 4 #include 5 #include 6 using namespace std; 7 8 int main() 9 {10 // min heap11 priority_queue, less > pq;12 vector vv;13 int n, k;14 int i, t... 阅读全文
posted @ 2013-11-23 15:46 zhuli19901106 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1370 - 数组中出现次数超过一半的数字2013-11-23 03:55题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。输入:每个测试案例包括2行:第一行输入一个整数n(1 4 #include 5 using namespace std; 6 7 int main() 8 { 9 int tmp, ans;10 int c;11 int i, n;12 map mm; // mus... 阅读全文
posted @ 2013-11-23 04:06 zhuli19901106 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1368 -二叉树中和为某一值的路径2013-11-23 03:46题目描述:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。输入:每个测试案例包括n+1行:第一行为2个整数n,k(1 4 #include 5 using namespace std; 6 7 void dfs(const int a[][3], const int &n, int r, int sum, int target, vector &path) 8 { 9 if(r n){10 ... 阅读全文
posted @ 2013-11-23 03:52 zhuli19901106 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1367 - 二叉搜索树的后序遍历序列2013-11-23 03:16题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。输入:每个测试案例包括2行:第一行为1个整数n(1 4 using namespace std; 5 6 bool check_postorder(const int a[], int left, int right) 7 { 8 if(a == NULL || left right){ 9 return false;10 ... 阅读全文
posted @ 2013-11-23 03:40 zhuli19901106 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1362 - 左旋转字符串(Move!Move!!Move!!!)2013-11-23 03:05题目描述:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!输入:多组测试数据,每个测试数据包含一个字符序列S和非负整数K。其中S的长度不超过1000。输出:对应每个测试案例,输出新序列。样例输入:UDBOJ 4abba 1样例输出:JU 阅读全文
posted @ 2013-11-23 03:07 zhuli19901106 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1361 - 翻转单词顺序2013-11-23 02:45题目描述:JOBDU最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?输入:每个测试案例为一行,表示一句英文句子。我们保证一个句子的单词数不会超过600,每个单词的长度也不会超过30。但是需要注意的是Fish 阅读全文
posted @ 2013-11-23 02:49 zhuli19901106 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1354 - 和为S的连续正数序列2013-11-23 02:02题目描述:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输入:输入有多组数据。每组数据仅包括1个整数S(S= 1,2 * a + n - 1 >= n + 1 > n,于是n 4 #include 5 阅读全文
posted @ 2013-11-23 02:17 zhuli19901106 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1351 - 数组中只出现一次的数字2013-11-23 01:23题目描述:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。输入:每个测试案例包括两行:第一行包含一个整数n,表示数组大小。2 4 using namespace std; 5 6 int main() 7 { 8 int *a = NULL; 9 int n, i;10 int r1, r2;11 int r;12 int bit;13 14 while(scanf("%d", &n) == 1){15... 阅读全文
posted @ 2013-11-23 01:25 zhuli19901106 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1350 - 二叉树的深度2013-11-23 00:54题目描述:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。输入:第一行输入有n,n表示结点数,结点号从1到n。根结点为1。 n left), max_depth(r->right)) + 1; 实际上由于树的节点个数一开始就指定了,所以直接用数组存数据,用下标当指针就行了,coding更方便。题目中节点数n的数据范围居然只有10,我都怀疑应该是10000或者1000错写成10了。 但有一点要注意,根节点如果不指定为1的话,是需要我们自己 阅读全文
posted @ 2013-11-23 01:04 zhuli19901106 阅读(295) 评论(0) 推荐(0) 编辑