- 博客(30)
- 资源 (16)
- 论坛 (2)
- 收藏
- 关注
转载 memcpy内存重叠的解决
内存重叠:拷贝的目的地址在源地址范围内。所谓内存重叠就是拷贝的目的地址和源地址有重叠。在函数strcpy和函数memcpy都没有对内存重叠做处理的,使用这两个函数的时候只有程序员自己保证源地址和目标地址不重叠,或者使用memmove函数进行内存拷贝。memmove函数对内存重叠做了处理。现在来看函数strcpy原型:extern char *strcpy(char *dest,ch
2012-08-31 09:40:41
12928
3
原创 将多个集合合并成没有交集的集合
百度面试题:将多个集合合并成没有交集的集合2010-03-20 18:25给定一个字符串的集合,格式如:{aaa bbb ccc}, {bbb ddd},{eee fff},{ggg},{ddd hhh}要求将其中交集不为空的集合合并,要求合并完成后的集合之间无交集,例如上例应输出{aaa bbb ccc ddd hhh},{eee fff}, {ggg}。(1)请描述你解决这个问
2012-08-30 23:32:09
8121
3
转载 如何判断两个矩形相交
假定矩形是用一对点表达的(minx, miny) (maxx, maxy),那么两个矩形 rect1{(minx1, miny1)(maxx1, maxy1)} rect2{(minx2, miny2)(maxx2, maxy2)} 相交的结果一定是个矩形,构成这个相交矩形rect{(minx, miny) (maxx, maxy)}的点对坐标是: minx
2012-08-30 22:54:34
4462
原创 给定一个N位数,得到一个N-k位的数中最小的数
题目:给定一个N位数,例如12345,从里面去掉k个数字,得到一个N-k位的数, 例如去掉2,4,得到135,去掉1,5,得到234。设计算法,求出所有得到的 N-k位数里面最小的那一个 解决方案一:(1)第一步要确定剩余N-K位的数的最高位:从个位开始算起,从第N-K位开始向高位比较,求出最小数字,作为高位。例如,3 1 1 2 3 3 1,K=3时,从7
2012-08-30 21:46:27
3688
转载 【面经】葫芦面经
1、给定一个N位数,例如12345,从里面去掉k个数字,得到一个N-k位的数, 例如去掉2,4,得到135,去掉1,5,得到234。设计算法,求出所有得到的 N-k位数里面最小的那一个2、“找明星”,N个人中,只有一个明星:明星不认识其他所有的人,而其他人 都认识明星,这些人中也可能相互认识。你每次只可以问一个人是否认识另一 个人这样的问题,问最少问多少次可以找
2012-08-30 21:18:31
1509
3
转载 淘宝面试-Strcpy与memcpy两函数的经典实现
char *strcpy(char *des, const char *src){ assert((des != NULL) && (src != NULL)); char *add = des; while ((*des++ = *src++ ) != ‘\0’) ;return add;} vo
2012-08-30 10:05:51
860
转载 Typename和Class在声明模板时的区别
声明template参数时,前缀关键词class和typename可互换。也就是说以下两个没有区别:(1)templateclass Widget;(2)templateclass Widget。然而C++并不总是把class和typename视为等价。有时一定得使用typename。这种时机就是:任何时候当想要在template中指涉一个嵌套从属类型名称,就必须在紧邻它的前一个位
2012-08-29 20:33:46
1056
转载 TCP协议三次握手过程分析
TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急
2012-08-28 22:50:53
706
转载 单例模式
题目:什么是单例模式?请写一段单例模式的程序? 解决方案:单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。
2012-08-28 22:43:56
711
原创 如何查找完全二叉树最后一层的最右边的结点
题目:如何查找完全二叉树最后一层的最右边的结点。 解决方案:需要分两种情况考虑。(1)如果完全二叉树是用数组表示的,则直接取数组的最后一个元素。(2)如果完全二叉树是用指针表示的:可以如下解决:a. 从根节点开始,如果右子树存在,则每次先遍历右子树,如果右子树不存在,则访问左子树;b. 如果右子树是叶子节点(即当前节点没有孩子节点),则该节点即所求节点;如果
2012-08-28 22:36:38
3038
原创 【程序员面试宝典】递归之两个字符串连接次序问题(P83)
题目:输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序。即输出125、126、145、146. 解决方案:此处仅考虑第一个字符串中的字符在第二个字符串中的相对位置不变的情况。此时,可以按照递归的思路思考如下:(1)递归过程中:采用两个指针分别指向两个字符串,对应字符相同,则同时后移,然后继续递归查找后面的相同的字符;(2)边界:
2012-08-28 22:09:34
1517
转载 C++的多态原理和实现
面试时经常被问到一连串的问题:1、什么是多态性?2、多态性的原理(多态是怎么实现的)?3、用C语言实现多态(写代码)。首先,我们来研究一下C++面向对象的内存模型,也就是实现虚函数时类的存储结构。1. 用 virtual 关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。 2. 存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始
2012-08-27 23:12:26
641
转载 判断一个图是否有环(有向图,无向图)
无向图:法1:如果存在回路,则必存在一个子图,是一个环路。环路中所有顶点的度>=2。 n算法: 中 第一步:删除所有度 第二步:将度数变为1的顶点排入队列,并从该队列中取出一个顶点重复步骤一。 如果最后还有未删除顶点,则存在环,否则没有环。 n算法分析: 由于有m条边,n个顶点。如果m>=n,则根据图论
2012-08-27 23:11:35
2175
转载 sizeof(class)分析
There are many factors that decide the size of an object of a class in C++. These factors are:Size of all non-static data members //静态数据成员的大小Order of data members
2012-08-26 17:34:29
614
原创 【程序员面试宝典】强制类型转换之面试例题2
题目:void main() { unsigned int a = 0xFFFFFFF7; unsigned char i = (unsigned char)a; char* b = (char*)&a; printf("%08x, %08x\n", i, *b); } 输出:000000f7, fffff
2012-08-26 11:12:17
1521
1
原创 一个字符串中包含另一个字符串所有字符的最短子串长度?——《编程之美》最短摘要的生成的简化
题目:给定一个字符串及一个字符串集合A,求该字符串中包含A中所有字符的最短子串长度。 解决方案一:最直接的方法就是,直接开始遍历:查找任意两个子串之间是否包含str2,如果包含,记录下长度,求得最小值即可。str1 = "daebfacba";str2 = "abc";minLen = len(str1);for i = 0:len(str1) for j
2012-08-25 15:32:55
6005
1
原创 腾讯面试题
一,设计一个魔方(六面)的程序。 P194 思路:魔方总数9 + 9 + 8 = 26 魔方有六个面,需要定义六个结构体,内容为一个9个点和一个编号,其中每个点包含一个颜色标识;在魔方展开图中根据正方形的相邻关系编号,每个正方形都有四个函数:左翻、右翻、上翻、下翻 根据相邻关系,每个操
2012-08-24 23:41:14
1124
转载 面试技巧:16个经典面试问题回答思路(转)
面试过程中,面试官会向应聘者发问,而应聘者的回答将成为面试官考虑是否接受他的重要依据。对应聘者而言,了解这些问题背后的“猫腻”至关重要。本文对面试中经常出现的一些典型问题进行了整理,并给出相应的回答思路和参考答案。读者无需过分关注分析的细节,关键是要从这些分析中“悟”出面试的规律及回答问题的思维方式,达到“活学活用”。 问题一:“请你自我介绍一下” 思路: 1、这是面
2012-08-24 22:17:16
754
转载 再谈 宝洁经典八大问
1. Describe an instance where you set your sights on a high/demanding goal and saw it through completion. 举例说明,你如何制定了一个很高的目标,并且最终实现了它。 2. Summarize a situation where you took the initiative to
2012-08-24 17:45:54
1716
转载 C语言实现封装、继承和多态
原文参见如下网址:原创文章,转载请注明: 转载自董的博客本文链接地址: http://dongxicheng.org/cpp/ooc/
2012-08-24 17:27:35
855
转载 左右法则 来解析指针问题
首先将“左右法则”的原文搬出来吧:The right-left rule: Start reading the declaration from the innermost parentheses, go right, and then go left. When you encounter parentheses, the direction should be reversed. On
2012-08-24 16:48:52
562
原创 sizeof与strlen的区别
功能区别:sizeof用来求所占内存大小,而strlen用来求字符串长度。区别:(1)sizeof是一个操作符,它的结果类型为size_t(无符号整型数据),而strlen是一个函数,其结果类型也是size_t;(2)sizeof的参数可以是变量,也可以是类型,为变量的时候可以不加括号(sizeof a);而strlen的参数只能是变量;例如,int a = 3;sizeo
2012-08-24 14:40:24
585
转载 memcpy与memmove的区别
memmove 和 memcopy1.memmove函数原型:void *memmove(void *dest, const void *source, size_t count)返回值说明:返回指向dest的void *指针参数说明:dest,source分别为目标串和源串的首地址。count为要移动的字符的个数函数说明:memmove用于从source拷贝c
2012-08-24 13:58:32
469
原创 计算点在哪些四边形内
题目:一个平面中,有很多正四边形,大小不一,任意四边形之间可以有重叠部分,如下图所示现在有2000个点,如何快速定位这些点分别属于哪些四边形区域? 解决方案:采用区域分割+hash查找的方法。1. 预处理阶段:X将四边形按照左边进行排序,然后逐一按照X轴划分区域,如图:然后,将每一个区域的左边界和右边界作为key,所包含的四边形作为value,存入哈希表中。
2012-08-24 10:24:34
1199
原创 随机概率发生器
题目:已知一随机发生器,产生0的概率是p,产生1的概率是1-p,现在要你构造一个发生器,使得它构造0和1的概率均为1/2解决方案:这是随机概率发生器的典型题目。由于需要产生1/2,而用1位0,或1位1无法产生等概率,因此,考虑将随机数扩展成2位:00 p*p01 p*(1-p)10 (1-p)*p11 (1-p)*(1-p)有上述分析知道,01和10
2012-08-24 09:52:49
6004
3
转载 《算法导论》之 Problem 5.1-3(随机函数发生器的设计)
问题叙述:*5.1-3 假设你希望以各1/2的概率输出0和1.你可以自由使用一个输出0或1的过程BIASED-RANDOM。它以概率p输出1,以概率1 - p输出0,其中 0 算法分析: 已知BIASED-RANDOM可产生0和1,那么 1 - BIASED-RANDOM也产生1和0,且以1 - p的概率输出1,以p的概率输出0。 如果我们将1 - BIAS
2012-08-24 00:20:46
2474
原创 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
题目:写一个函数判断一个int类型的数组是否是有效的。 所谓有效是指:假设数组大小为n,那么这个int数组里的值为0~n-1之间的数,并且每个数只能出现一次,否则就是无效数组。 例如[5,3,1,4,2,0]是有效的,[5,3,5,1,2,0]是无效的,[5,3,6,1,2,0]是无效的。 解法思路一:置换的思想用一个temp来存储被置换出来的值,例如数组a:5
2012-08-23 17:56:40
7703
15
原创 人搜面试摘录
一、面试形式 1、3轮1V1的技术面试;某轮面试通过,稍事休息后开始下一轮面试。 2、面试过程基本分为两部分: 1)对简历上所写项目的描述,及回答对方感兴趣的项目细节; 2)对方给出数组、链表等常见程序设计问题,要求描述解决问题的思路;并把思路转化为代码(手写)。 这一部分是最重要的环节,占面
2012-08-16 22:12:15
2490
5
原创 人搜笔试题目
1. 快排每次以第一个作为主元,问时间复杂度是多少?(O(N*logN))2. T(N) = N + T(N/2)+T(2N), 问T(N)的时间复杂度是多少?(O(N))3. 从(0,1)中平均随机出几次才能使得和超过1?(e)4.编程题: 一棵树的节点定义格式如下: struct Node{Node* parent;Node* firstChild; // 孩子节点
2012-08-16 22:08:01
2709
3
原创 平均要取多少个(0,1)中的随机数才能让和超过1
数学常数最令人着迷的就是,它们常常出现在一些看似与之毫不相干的场合中。 随便取一个 0 到 1 之间的数,再加上另一个 0 到 1 之间的随机数,然后再加上一个 0 到 1 之间的随机数⋯⋯直到和超过 1 为止。一个有趣的问题:平均需要加多少次,才能让和超过 1 呢?答案是 e 次。#define NUM 9999999 int main(){ int sum=0;srand(
2012-08-15 13:23:12
3612
7
telnet-server-0.17-25.i386.rpm
2011-06-14
Thumbnail_demo
2011-04-07
采用skinmagic对VC程序进行换肤
2011-03-10
wangicter的留言板
发表于 2020-01-02 最后回复 2020-01-02
wince+cdma 拨号上网:端口不可用
发表于 2010-07-21 最后回复 2012-02-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝