07 2017 档案
添加回文串
摘要:题目描述 对于一个字符串,我们想通过添加字符的方式使得新的字符串整体变成回文串,但是只能在原串的结尾添加字符,请返回在结尾添加的最短字符串。 给定原字符串A及它的长度n,请返回添加的字符串。保证原串不是回文串。 测试样例: "ab",2 返回:"a" 题目描述 对于一个字符串,我们想通过添加字符的方 阅读全文
posted @ 2017-07-30 20:29 王小东大将军 阅读(274) 评论(0) 推荐(0)
返回最小的k个数
摘要:对于一个无序数组,数组中元素为互不相同的整数,请返回其中最小的k个数,顺序与原数组中元素顺序一致。 给定一个整数数组A及它的大小n,同时给定k,请返回其中最小的k个数。 测试样例: 1、排序 2、找到k大作为基准 3、遍历比较,小于k的输出 阅读全文
posted @ 2017-07-30 19:17 王小东大将军 阅读(390) 评论(0) 推荐(0)
串的模式匹配
摘要:题目描述 对于两个字符串A,B。请设计一个高效算法,找到B在A中第一次出现的起始位置。若B未在A中出现,则返回-1。 给定两个字符串A和B,及它们的长度lena和lenb,请返回题目所求的答案。 测试样例: "acbc",4,"bc",2 返回:2 对于两个字符串A,B。请设计一个高效算法,找到B在 阅读全文
posted @ 2017-07-30 18:26 王小东大将军 阅读(330) 评论(1) 推荐(0)
查找数组中未出现的最小正整数
摘要:请设计一个高效算法,查找数组中未出现的最小正整数。 给定一个整数数组A和数组的大小n,请返回数组中未出现的最小正整数。保证数组大小小于等于500。 测试样例: /*分析: * 最小的没有出现的正整数 * 如果1没有出现 那么最小结果为1 * 如果1到n都出现那么最下的结果为n+1 * 因此结果的范围 阅读全文
posted @ 2017-07-30 17:40 王小东大将军 阅读(2565) 评论(0) 推荐(0)
计算一个未排序数组中排序后相邻元素的最大差值
摘要:题目描述 请设计一个复杂度为O(n)的算法,计算一个未排序数组中排序后相邻元素的最大差值。 给定一个整数数组A和数组的大小n,请返回最大差值。保证数组元素个数大于等于2小于等于500。 测试样例: [9,3,1,10],4 返回:6 请设计一个复杂度为O(n)的算法,计算一个未排序数组中排序后相邻元 阅读全文
posted @ 2017-07-30 16:34 王小东大将军 阅读(2646) 评论(2) 推荐(0)
13 类对象的声明中加小括号{}和不加小括号{}的区别
摘要:以下代码有什么问题? A b.fun()会出错 B Test结构的定义中应该加上public修饰符,才能main函数值调用该类的方法 C Test(int) {}改成Test(int a) {} D 以上说法都错误 解答: b.fun(); //b不是Test的实例对象 类是结构体的扩展,在类中封装 阅读全文
posted @ 2017-07-30 12:48 王小东大将军 阅读(495) 评论(0) 推荐(0)
12 表中删除重复项
摘要:以下代码实现了从表中删除重复项的功能,请选择其中空白行应填入的正确代码(D) A、p=curr+1;aList.erase(p++);B、p=++curr;aList.erase(p++);C、p=curr+1;aList.erase(p);D、p=++curr;aList.erase(p); 当使 阅读全文
posted @ 2017-07-30 12:37 王小东大将军 阅读(483) 评论(0) 推荐(0)
11 常量区的内容不能被修改
摘要:下面叙述错误的是() char acX[]=”abc”; char acY[]={‘a’,’b’,’c’}; char *szX=”abc”; char *szY=”abc”; A、acX与acY的内容可以修改 B、szX与szY指向同一个地方 C、acX占用的内存空间比acY占用的大小 D、szX 阅读全文
posted @ 2017-07-30 12:23 王小东大将军 阅读(683) 评论(0) 推荐(0)
10 无向图的边
摘要:要保证连通具有10个顶点的无向图,至少需要()条边。 A 、9 B、90 C、37 D、45 分析:在一个无向图中,若从顶点v到顶点u有路径相连,则称v到u是连通的(u到v也一定有路径)。如果图中任意两点都是连通的,那么图被称作连通图。 要保证连通具有10个顶点的无向图,重点是需要保证连通,则需要前 阅读全文
posted @ 2017-07-29 11:18 王小东大将军 阅读(1888) 评论(0) 推荐(0)
顺时针旋转矩阵
摘要:题目描述 有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。 给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于300。 测试样例: [[1,2,3],[4,5,6],[7,8,9]],3 返回:[[7,4,1],[8,5,2],[9,6,3]] 有一个NxN 阅读全文
posted @ 2017-07-25 22:55 王小东大将军 阅读(1140) 评论(0) 推荐(0)
字符串的旋转
摘要:题目描述 对于一个字符串,和字符串中的某一位置,请设计一个算法,将包括i位置在内的左侧部分移动到右边,将右侧部分移动到左边。 给定字符串A和它的长度n以及特定位置p,请返回旋转后的结果。 测试样例: "ABCDEFGH",8,4 返回:"FGHABCDE"问题简化:假设现在只要把E放在左边,那么我们 阅读全文
posted @ 2017-07-25 21:44 王小东大将军 阅读(400) 评论(0) 推荐(0)
动态规划算法
摘要:R.Bellman等人于1951年在研究多阶段决策过程优化问题时所创立的一种用于解决此类过程优化问题的新方法。 逆向递归的方法称为动态规划法(Dynamic Programming). 多阶段决策 有一类问题可以将其活动过程分解成若干个相互联系的阶段,在它的每一阶段都需要作出决策,从而使整个过程达到 阅读全文
posted @ 2017-07-24 17:13 王小东大将军 阅读(286) 评论(0) 推荐(0)
贪心算法应用-最小生成树
摘要:在一个有权连通图(网络)中,生成树的各边权值之和称为生成树的代价。在网络的所有生成树中,权值最小的那颗生成树称为最小代价生成树(Minimum Cost Spanning Tree),简称为最小生成树Minimum Spanning Tree)。讨论问题就是如何寻找一颗各边权的总和最小的生成树。 Q 阅读全文
posted @ 2017-07-24 15:55 王小东大将军 阅读(2646) 评论(0) 推荐(0)
贪心算法应用-单元最短路径
摘要:最短路径问题是用图中的顶点代表不同的城市,用图中顶点之间的连线即边上权值表示不同城市之间路径的长度,在从一个顶点到另一个顶点之间的所有路径中,求权值之和最小的路径的问题即为最短路径问题。 单元最短路径问题可以描述为在一个带有权值的有向图中,从一个顶点到另一个顶点存在多条通路。要求找一条从初始顶点S( 阅读全文
posted @ 2017-07-24 13:32 王小东大将军 阅读(1283) 评论(0) 推荐(0)
贪心算法应用-哈夫曼编码
摘要:哈夫曼编码应用于数据文件和图像压缩的编码方式。其压缩率通常在20%~90%之间、在进行远距离通信时,通常需要把将要传送的文字转换为由二进制字符组成的字符串,并使要传送的电文总长度尽可能的短。显然只要将点文章出现次数多的字符采用尽可能短的编码,就可以减少要传送的电文总长度。 哈夫曼编码的核心思想: ( 阅读全文
posted @ 2017-07-24 12:44 王小东大将军 阅读(631) 评论(0) 推荐(0)
9 深拷贝学习
摘要:关于“深拷贝”,下列说法正确:A A 会拷贝成员数据的值和会拷贝静态分配的成员对象 B 只会拷贝成员数据的值 C 只会拷贝静态分配的成员对象 D 只会拷贝动态分配的成员对象 分析: 我认为浅拷贝是一个不喜欢思考的懒汉,而深拷贝则是一个思维严谨,喜欢思考的人。对于懒汉来说,虽然给了他任务,但是他总是想 阅读全文
posted @ 2017-07-24 11:17 王小东大将军 阅读(218) 评论(0) 推荐(0)
8 标准库C文件
摘要:使用标准C库时,下面哪个选项使用只读模式打开文件、 A fopen("foo.txt","r");//r 打开只读文件 B fopen("foo.txt","r+");//r+ 打开可读写的文件,从文件头开始写,保留原文件中没有被覆盖的内容; C fopen("foo.txt","w");//w 打 阅读全文
posted @ 2017-07-24 11:09 王小东大将军 阅读(176) 评论(0) 推荐(0)
7dynamic_cast用法
摘要:已知下面的class层次,其中每一个class都定义有一个default constructor和一个virtual destructor; 下面(C)执行dynamic_cast会失败 A a*pa=new D; X *px=dynamic_cast<X*>(pa); B D *pd=new D; 阅读全文
posted @ 2017-07-24 10:58 王小东大将军 阅读(407) 评论(0) 推荐(0)
6.pragma pack
摘要:下面两个结构体 在#pragma pack(4)和#pragma pack(8)的情况下,结构体的大小分别是: 16 16 16 24. 分析: 许多实际的计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的首地址的值是某个数k(通常它为4或8)的倍数,这就是所谓的内存对齐。 每个 阅读全文
posted @ 2017-07-24 10:38 王小东大将军 阅读(185) 评论(0) 推荐(0)
5 友元类
摘要:类A是类B的友元,类C是类A的公有派生类,忽略特殊情况下,下列说法正确的:BD A 类B是类A友元 B 类C不是类B友元 C 类C是类B友元 D 类B不是类A友元 分析: (1) 友元关系不能被继承。(2) 友元关系是单向的,不具有交换性。若类B是类A的友元,类A不一定是类B的友元,要看在类中是否有 阅读全文
posted @ 2017-07-24 10:23 王小东大将军 阅读(122) 评论(0) 推荐(0)
4 虚函数用法
摘要:分析下列程序: 程序输出: Base 、Derived、Derived 分析: 首先声明Base类型的指针指向实际类型为Derived的对象,先调用基类构造函数,再调用派生类构造函数。输出Base, Derived. base->echo(); 指针是base类型,但是因为有关键词 virtual, 阅读全文
posted @ 2017-07-24 10:19 王小东大将军 阅读(188) 评论(0) 推荐(0)
3析构函数分析
摘要:设已经有ABCD4个类的定义,程序中ABCD析构函数的调用顺序是什么?B A 、ABCD B、 ABDC C 、ACDB D 、ACBD 分析:根据析构函数先构造的就最后析构,从程序中可以看到先构造出C类的c,所以最后析构C类的c。由此可以选择B。 这道题主要考察的知识点是 :全局变量,静态局部变量 阅读全文
posted @ 2017-07-24 10:02 王小东大将军 阅读(313) 评论(0) 推荐(0)
2 函数指针变量
摘要:分析下列程序: 则以下不合法的是: C A int (*p)(float) = &f1; B pf = &f4; C pf= &f2; D pf = f3; 知识点:函数指针变量: 函数指针变量的声明方法为: 返回值类型 ( * 指针变量名) ([形参列表]);根据定义, int(*pf)(floa 阅读全文
posted @ 2017-07-24 09:54 王小东大将军 阅读(275) 评论(0) 推荐(0)
1strcat/strcpy应用
摘要:分析下列程序输出 程序输出xycdBCD 分析: strcat(p1+2,p2+1); //返回以p1+2为首的字符串,即"cdBCD" strcpy(str+2,strcat(p1+2,p2+1)); //将"cdBCD"copy到str+2位置上,并覆盖后面的内容,此时str为"xycdBCD" 阅读全文
posted @ 2017-07-24 09:45 王小东大将军 阅读(336) 评论(0) 推荐(0)
贪心算法
摘要:贪心算法是指在对问题求解时,总是作出当前看来是最好的选择。也就是说,不从整体最优上加以考虑,所得的仅是在某种意义上的局部最优解。 贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。 4种硬币,面值为二角五分、一角、五分、一分。现在有人用1 阅读全文
posted @ 2017-07-23 19:30 王小东大将军 阅读(615) 评论(0) 推荐(0)
分治法
摘要:分治法就是将一个难以解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之,递归法是分治法的实现手段。 问题:假定给出一个装16个硬币的袋子,袋子中有一个伪造的硬币,其质量比真硬币轻,现在任务是找出这个伪造的硬币。为了完成这个任务,将提供一台可用来比较两组硬币重量的仪器,利用这台仪器,可 阅读全文
posted @ 2017-07-23 17:51 王小东大将军 阅读(478) 评论(0) 推荐(0)
递归法
摘要:递归法(Recursion)是一种在函数或方法中调用自身的编程技术,在计算机方法中,使用递归技术往往使函数的定义和算法的描述简洁且易于理解。任何可以用计算机求解的问题所需要的计算时间都与其规模有关。而且规模越小,解题所需要的计算时间通常越小,从而比较容易处理。 简而言之,递归思想就是用与自身问题相似 阅读全文
posted @ 2017-07-23 16:49 王小东大将军 阅读(829) 评论(0) 推荐(0)
查找二 树与图的搜索
摘要:搜索对象是一个数据的集合(称为搜索表),除了执行搜索外,还可能执行其他操作,例如添加新元素,这样可能会改变搜索表的结构。因此,搜索表可以区分为静态搜索表(表的结构不发生改变)和动态搜索表两种情况。 常见的适用于静态搜索表的搜索方法有:顺序搜索、折半搜索、Fibonacci搜索等。 适用于动态搜索表的 阅读全文
posted @ 2017-07-22 16:09 王小东大将军 阅读(1746) 评论(0) 推荐(0)
(转载)查找三 哈希表的查找
摘要:查找三 哈希表的查找 目录 要点 哈希表和哈希函数 在记录的存储位置和它的关键字之间是建立一个确定的对应关系(映射函数),使每个关键字和一个存储位置能唯一对应。这个映射函数称为哈希函数,根据这个原则建立的表称为哈希表(Hash Table),也叫散列表。 以上描述,如果通过数学形式来描述就是: 若查 阅读全文
posted @ 2017-07-22 14:03 王小东大将军 阅读(332) 评论(0) 推荐(0)
(转载)查找一 线性表的查找
摘要:查找一 线性表的查找 目录 查找的基本概念 顺序查找 二分查找 分块查找 三种线性查找的PK 参考资料 相关阅读 查找的基本概念 什么是查找? 查找是根据给定的某个值,在表中确定一个关键字的值等于给定值的记录或数据元素。 查找算法的分类 若在查找的同时对表记录做修改操作(如插入和删除),则相应的表称 阅读全文
posted @ 2017-07-22 09:43 王小东大将军 阅读(244) 评论(0) 推荐(0)