摘要: 1. 已知类A B 以下四个 哪些可以 哪些有错class A{ };class B:public A{ };A* pa = new B; // 对B* pb = new A; // 错A a = B b; // 对 B b = A a; // 错解答: 父类可以接受子类 子类没法接受父类2. 如下 输出的是:class A{public: virtual void fun1(int a = 2) { cout<<a<<"A"<<endl; } virtual void fun2() { cout<<"... 阅读全文
posted @ 2012-09-19 09:18 Itachi7 阅读(171) 评论(0) 推荐(0) 编辑
摘要: int **a[3][4]; //占空间大小为 48 sizeof关于非空二叉树 错误的是 D () http://blog.csdn.net/tianshuai11/article/details/7593625A. 有两个子节点的节点 比没有子节点的节点少一个B. 根为0层 则第K层的节点数一定不多于2^kC. 已知二叉树的前序 中序 一定能构造后序D. 堆一定是完全二叉树以下排序哪个空间复杂度最高 A 快排需要使用栈空间A. 快速排序 B. 冒泡 C. 希尔 D. 堆排序 // A 1 B 1 C 0 D 1struct B { B(){ cout<<"B" 阅读全文
posted @ 2012-09-12 21:42 Itachi7 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 1.有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。思路:若有a[n]个数 构造b[n] 其中 b[i] = a[i] - a[i -1] 这样a[n]中任意两个数之差 就可以用 b[i] +...+b[j] = (a[i]-a[i-1])+(a[i+1]-a[i])..+(a[j]-a[j-1]) = a[j]-a[i-1]因此 再利用最大连续子序列和的类似方法O(n) 即可求出 (还是有问题 当数组为 {1,20,200,16,1}这种情况时 )int GetMinAbsoluteSubsequence(int B[],int begin,i. 阅读全文
posted @ 2012-09-10 23:56 Itachi7 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 假设前序 char pstr[] = "abdcef" 中序为 char mstr[] = "dbaecf" 构造该二叉树递归思想,首先前序遍历的第一个一定是根结点,然后从中序遍历中找到根节点所在的位置,这样就将中序分为左右子树的两部分,比如,首先找到先序的第一个'a', 在中序遍历中的位置,那么'db' 'ecf' 就分别为'a' 的左子树和右子树, 然后继续递归求解即可;void rebuild(char* ps,char* ms,int len,Node* &temp){ if 阅读全文
posted @ 2012-09-04 23:45 Itachi7 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 深搜 回溯bool isprimer(int tt) //判断该数是否为质数{ if (tt == 2||tt == 3) { return true; } else if (tt == 1||tt%2 == 0) return false; for (int i = 2;i <= sqrt(static_cast<double>(tt));++i) { if (tt%i == 0) return false; } return true;}bool test(int ... 阅读全文
posted @ 2012-09-03 20:21 Itachi7 阅读(529) 评论(0) 推荐(0) 编辑
摘要: 给定一个数组 a[n], 输出b[n], 其中 b[i] = a[0]*a[1]...*a[i-1]*a[i+1]*....a[n]; 其中不能用除法 复杂度要求O(n) out[0] = inpt[0]; for (int i = 1;i < n;++i) //顺时第一趟 { out[i] = out[i - 1]*inpt[i]; } //for (int i = 0;i < n;++i) //{ // cout<<out[i]<<' '; //} //cout... 阅读全文
posted @ 2012-08-30 23:08 Itachi7 阅读(178) 评论(0) 推荐(0) 编辑
摘要: OpenGL+VC.NET 2005包含文件:#include <GL/glut.h>#include <stdlib.h>#include <stdio.h>编译出错:Error 1 error C2381: 'exit' : redefinition; __declspec(noreturn) differs d:\program files\microsoft visual studio 8\vc\include\stdlib.h 406解决方法:1. 找到“glut.h”文件,如“D:\Program Files\Microsoft 阅读全文
posted @ 2012-08-16 16:48 Itachi7 阅读(325) 评论(1) 推荐(0) 编辑
摘要: 题目描述:给定一个二维矩阵包含正负数,求子矩阵中的和的最大值。例如:0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2最大值为: 15 =9 2-4 1-1 8解题思路: [枚举上下界,转化为一维最大子序列和]由一维最大子序列和推广至二维: 假设我们已经知道最大子矩阵所在的高度(行)的上界和下界(起点行号和终点行号,eg [first,last]),然后我们再将相应上下界中每一列的和求出来,保存在数组b[i]中,这样就变成了求一维数组的最大子序列和的问题。PS: 在求每列之和时,可以用一个小技巧。对于某一上界 a_first, 不同的下界 b_first 对应的每列之和.. 阅读全文
posted @ 2012-08-13 10:52 Itachi7 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 给你4张牌 A-K 即[1,13] , 可以任意四种基本操作 + - * / 和 ( ) 优先级 判断是否可以计算得到24hits: 只会暴力解法, 4张牌 a,b,c,d 对应的组合一共有 4! = 24种 都是2目操作符 ,因此只需要3种操作, 一共有 4*4*4 = 64种 关于优先级,每次只有一对操作优先 包含2个操作数和一个操作符 ,因此,枚举所有优先情况也只有以下5种:包含逆波兰表达式(后缀表达式) 1. ((ab)c)d 00+0+0+ 2. (a(bc))d 000++0+ 3. (ab)(cd) 00+00++ 4. a((bc)d) 000+0... 阅读全文
posted @ 2012-08-06 20:26 Itachi7 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 有两个数组a,b,大小都为n,数组元素的值任意整形数,无序; 要求:通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差最小。 当前数组a和数组b的和之差为 A = sum(a) - sum(b) a的第i个元素和b的第j个元素交换后,a和b的和之差为 A' = sum(a) - a[i] + b[j] - (sum(b) - b[j] + a[i]) = sum(a) - sum(b) - 2 (a[i] - b[j]) = A - 2 (a[i] - b[j]) 设x = a[i] - b[j] |A| - |A'| = |A| - |A-2x| 假设A > 阅读全文
posted @ 2012-07-17 14:35 Itachi7 阅读(5900) 评论(4) 推荐(3) 编辑