笔试面试类
imcdragon
这个作者很懒,什么都没留下…
展开
-
求1234567891011121314151617181920*2019181716151413121110987654321的值
/*求1234567891011121314151617181920*2019181716151413121110987654321的值. 用数组去做,把第1个大数和第2个大数分别用数组表示. 格式举例如下:9 8 7 6 5 4 3 2 1 0 <---------原创 2011-09-30 22:18:45 · 5969 阅读 · 0 评论 -
删除两个双向循环链表中具有相同值的节点
#include #include typedef int datatype;using namespace std;typedef struct node{ datatype data; struct node *front, *ne原创 2011-10-09 08:18:52 · 2500 阅读 · 1 评论 -
单链表转置
/* 编写一个单链表反序的函数 */#include #include typedef int datatype;using namespace std;typedef struct node{ struct node *next;原创 2011-10-09 10:26:19 · 2910 阅读 · 0 评论 -
为什么每个C程序都需要一个叫做main的函数?
这是个有意思的问题。在 linux 里面,根据TIS 的ELF规范,一个可执行程序,也就是一个可执行的对象文件,它有一个程序进入点,这个进入点不是我们写的 main 函数,而是位于 c 库中的 _start 汇编代码中。在这个汇编代码中,它会去调用我们写的 main C函数,转载 2011-10-17 23:11:34 · 4010 阅读 · 0 评论 -
为什么空类占一个字节?
所谓类的实例化就是在内存中分配一块地址.(空类同样可以被实例化),每个实例在内存中都有一个独一无二的地址,为了达到这个目的,编译器往往会给一个空类隐含的加一个字节,这样空类在实例化后在内存得到了独一无二的地址.因为如果空类不隐含加一个字节的话,则空类无所谓实例化了(因为类的实例化转载 2011-10-17 23:14:37 · 5988 阅读 · 0 评论 -
程序分text, data (initialized), bss, stack, heap几个段
根据APUE,程序分为下面的段:.text, data (initialized), bss, stack, heap。data/bss/text: text段在内存中被映射为只读,但.data和.bss是可写的。bss是英文Block Started by Symb转载 2011-10-17 23:26:22 · 1282 阅读 · 0 评论 -
一个未排序整数数组,有正负数,重新排列使负数排在正数前面,并且要求不改变原来的相对顺序.
/*一个未排序整数数组,有正负数,重新排列使负数排在正数前面,并且要求不改变原来的 相对顺序 比如: input: 1,7,-5,9,-12,15 ans: -5,-12,1,7,9,15 要求时间复杂度O(N),空间O(1) 。*/#include using namespace std;void mSort(int *arr, int iLen){ i原创 2011-09-30 23:15:49 · 9222 阅读 · 3 评论 -
实现C语言的拷贝函数且将复制后的字符串逆序,不能使用库函数,不能定义其他的变量。
/* 写C语言的拷贝函数,要求复制字符串,并且将复制后的字符串逆序 比如from中是1234, 则to中是4321 void strcyp(char * to,const char * from)问题补充: 要求: 不能使用库函数 不能定义其他的变量。*/#include #include void strcyp(char *to, const char * from原创 2011-11-24 20:27:29 · 3299 阅读 · 0 评论 -
输出ZigZag矩阵
ZigZag矩阵如下图:找出一个能满足该规律的公式即可. 源代码如下:#include using namespace std;int** alloc_mat(int mat_size); //动态二维数组的分配 void del_mat(int **mat, int mat_size); //删除动态分配的二维数组void print_mat(int **mat, in原创 2011-12-28 13:47:24 · 1803 阅读 · 0 评论 -
腾讯2011面试题
今天去腾讯面试, 面试官出了一道题:有10亿个整数, 不重复, 不连续. (整数的范围按32位平台计算. 范围为0~2^32).求: 这10亿个整数中, 值在中间的那个数 (即第5亿个大的那个数). 面试官给我的答题时间是他抽完一根烟的时间. 结果悲剧了. 他只用原创 2011-10-16 21:16:50 · 1581 阅读 · 3 评论 -
用+,-,移位实现除法运算
如何利用+,-,移位来实现除法.假设求 dividend / divisor方法一:首先想到的是用减法来实现.算法思想:对dividend 循环减 divisor, 减一次res++, 直到刚好减为0或余数小于divisor.int integer_div_1原创 2011-10-07 23:31:12 · 15930 阅读 · 4 评论 -
寻找兄弟字符串
/*如果两个字符串的字符一样,但是顺序不一样,被认为是兄弟字符串,问如何在迅速匹配兄弟字符串(如,bad和adb就是兄弟字符串)。*/#include using namespace std;int isBroStr(char *str1, char原创 2011-09-30 17:17:35 · 4260 阅读 · 2 评论 -
搜狗笔试题
一个长度为n的数组a[0],a[1],...,a[n-1]。现在更新数组的名个元素,即a[0]变为a[1]到a[n-1]的积a[1]变为a[0]和a[2]到a[n-1]的积,...,a[n-1]为a[0]到a[n-2]的积。程序要求:要求具有线性复杂度。不能使用除原创 2011-09-30 17:15:42 · 1724 阅读 · 0 评论 -
已知rand7(),求rand10().
已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10。根据排列组合,连续算两次rand7出现的组合数是7*7=49,这49种组合每一种出现考虑是相同的。怎么从49平均概率的转换为1到10呢?方法是:1.ra转载 2011-09-30 19:50:15 · 4559 阅读 · 0 评论 -
求一个字符串中连续出现次数最多的子串
/* Author: Mcdragon Date: 15-07-11 21:17 Description: 求一个字符串中连续出现次数最多的子串. 基本算法描述: 给出一个字符串abababa 1.穷举出所有的后缀子串原创 2011-09-30 23:18:34 · 13532 阅读 · 2 评论 -
根据上排给出十个数,在其下排填出对应的十个数,要求下排每个数都是先前上排那十个数在下排出现的次数.
//数值: 0,1,2,3,4,5,6,7,8,9//分配: 6,2,1,0,0,0,1,0,0,0#include #define LEN 10using namespace std;class NumberTB{private: in转载 2011-09-30 23:22:29 · 3247 阅读 · 1 评论 -
1分2分5分的硬币,组成1角,共有多少种组合。
/*1分2分5分的硬币,组成1角,共有多少种组合。*/ #include using namespace std;int solve(int total);int main(){ int total = 10; int原创 2011-09-30 23:13:02 · 9456 阅读 · 5 评论 -
求一个字符串中出现次数最多的子串(并不是连续的)
/* Author: Mcdragon Date: 16-07-11 00:15 Description: 求一个字符串中出现次数最多的子串(并不是连续的). 问题描述: 求一个字符串中连续出现次数最多的子串,子串的长度可以是 1 。 分原创 2011-09-30 23:19:44 · 5359 阅读 · 0 评论 -
打印螺旋矩阵
首先,看一下螺旋矩阵的样子.如下图:求螺旋数组的代码如下(DEV-CPP平台):#include using namespace std;int** alloc_mat(int round); //动态二维数组的分配 void del_mat(int **mat, int round); //删除动态分配的二维数组void print_mat(int **mat, int r原创 2011-12-23 16:34:52 · 1234 阅读 · 0 评论