- 博客(8)
- 收藏
- 关注
原创 剑指offer——旋转数组最小数字问题
今天做到旋转数字最小数字时,看到需要考虑的边界有些麻烦,因而分析总结一下。 旋转数组其实就是一个递增排序数组的旋转,例如{3,4,5,1,2}即为{1,2,3,4,5}的一个旋转数组。 旋转数组有一个特性:包含两个递增子序列,因而可以考虑用二分查找简化。设置三个指针low,high,middle,low指向数组低部分,high指向数组高部分,middle指向high,low中间部分。若middl
2015-08-30 11:59:18 932
原创 阿里笔试——跳格子问题
问题:有1,2,3,……无穷个格子,你从1号格子出发,每次1/2概率向前跳一格,1/2概率向前跳两格,走到格子编号为4的倍数时结束,求结束时期望走的步数 这道题其实就是递归求解问题。 1 2 3 4 5 6 7 8 我们以1-8为例进行说明。 设E(i)为从第i个数走到结束第期望步数 E(1) = 1/2 * ( E(2) + 1 ) + 1/2 * ( E(3) + 1 ) E(1)为
2015-08-29 17:43:21 2804
原创 数据结构之链表操作
之前看数据结构时,以为链表操作很容易,真正写代码时才发现被打脸了。。。经历了各种错误后,现在总结一下走过的弯路。 这里主要说下链表的增加删除节点操作。typedef struct lnode { int data; struct lnode *next; }lnode,*llist;以上是我定义的节点结构,比较简单,不再赘述。 下面说下犯的错误 错误1. addnode函数为
2015-08-27 11:58:15 795
原创 C++输入
C++输入比较简单,但是有时也比较容易出错,所以这里想大概总结一下。 C++输入函数主要有cin,cin.getline,getline 1. cin是最常用的输入函数,属于istream输入流对象,cin>>x其实是>>操作符进行将x赋值给cin对象的操作,最终返回cin对象本身(&istream)。 从键盘输入数据x时,当输入回车符时,数据被送入发送缓冲区中。网上有文章认为:每当按
2015-08-26 23:07:18 633
原创 类型转换
struct data2_t{ char *dt[1]; }; int main(void) { char data[8]="hello"; data2_t *d; d=(data2_t *)&data; printf("address of data is %lu\n",(unsigned long)&data); printf("address o
2015-08-20 21:32:02 340
原创 关于面试中的fork()问题
今天做面试题,发现fork()函数虽然经常用,但是具体产生几个进程却常算错,所以决定总结一下。 fork()用于创建子进程,新的子进程将拷贝父进程的一切资源(包括文件描述符,变量等)。 fork()函数最重要的特性是:执行一次,返回两次,有三种返回情况。 若返回为负,则创建子进程失败; 返回为0,即返回的是子进程; 返回为正值,即返回的是父进程。 fork()返回的结果为创建子进程的pi
2015-08-20 17:36:40 908
原创 虚函数及虚继承总结
一. 虚函数 虚函数的使用是为了实现c++中的多态,即同一接口,不同实现,可用父类指针调用子类成员函数。虚函数是基于虚函数表(virtual table,v-table for short)来实现的。 每个包含虚函数的类都将分配一张虚函数表,虚函数表是一张地址表,解决继承多态问题。虚函数表并不存在于类实例中,而是类实例生成一个指向虚函数表的指针。 多重继承中
2015-08-20 00:22:03 497
转载 C++ 虚函数表解析
转载地址:http://blog.csdn.net/haoel/article/details/1948051/ 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模
2015-08-17 22:15:38 357
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人