
面试准备
跑着的程序员
目前就职于国内某大型企业,从事分布式系统的研发工作,欢迎各位牛人交流,QQ:501968942,邮箱:shenganbeiyang@163.com.
展开
-
hash海量数据查询的一个实现 :周末练手
前言:闲来蛋疼,周末在家陪老婆,中午还要亲自操厨,操厨之前,加深下对hash的理解,写下此篇。 正文:本篇文章主要模拟了海量搜索过程。从txt文件获取大量数据信息(模拟海量),建立hash表,然后输入关键字(字符串),能迅速定位要找的value。其实就是搜索某个特定的字符串。具体会贴出代码,和验证图。整个过程模拟了海量查找的过程,能切实感觉到hash 海量处理的优势。原创 2013-06-01 21:02:56 · 2590 阅读 · 0 评论 -
腾讯的一道面试题
给定一个数组A[N],我们希望构造数组b[N],其中b[j]=a[0]*a[1]*...*a[j-1]*a[j+1]*...*a[N];构造过程不能使用除法:要求时间复杂度O(n),空间复杂度O(1);除遍历计数器与a[N] b[N]外,不可使用新的变量(包括临时栈变量,堆空间变量,全局变量);断断续续想了好几天,#includeusing namespace std;te原创 2013-08-22 22:02:37 · 571 阅读 · 0 评论 -
DP总结
前言面试之前,总结一下dp。具体概念,看我的之前写的有关dp的博客,这里主要总结LCS,0-1背包,数组分割,数中和最大的子数组,数组的最长递增子序列,以及字符串的相似度。接下来分为俩部分,第一部分,引入各个算法的关键代码。第二部分,主要是表格总结,包括时间和空间复杂度,递推关系式。关键代码分析LCS:#include#includeusing namespace std;原创 2013-08-10 10:50:27 · 597 阅读 · 0 评论 -
工作的准备:atoi,itoa,strcpy,memcpy,strcmp,二分查找,strcat
对常见的几个函数,周末没事写写,绝对是笔试面试中非频繁,前面n届学长无数次强调了,大家就别怀疑了。从今天开始,每天10道题。 int atoi(const char* str){ if(str==NULL) return 0; bool sigFlag=true; int i=0; int sum=0;while(str[i]!='\0'){ if(原创 2013-09-02 22:46:17 · 743 阅读 · 0 评论 -
华为一道机试
int IsMatch(char* str ){ assert(str!=NULL); stack stk; int bResult=0; while(*str!=NULL) { if(*str=='['||*str=='(') stk.push(*str); if(*str==']') { d if(stk.empty(原创 2013-09-10 16:15:12 · 1077 阅读 · 0 评论 -
约瑟夫环的推导
网上找了很多,终于找到一个靠谱的连接,转载GX,原文连接:点击打开链接约瑟夫环约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围;从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。前几天,在一篇文章中得知了约瑟夫环的问题。然后,就涉转载 2013-09-13 23:39:36 · 6201 阅读 · 6 评论 -
TCP服务器:多进程
代码:server:#include#include#include#include #includeint main(int argc,char**argv){int sockfd, new_fd;/*监听socket:sock_fd,数据传输socket:new_fd*/struct sockaddr_in my_addr;/*本机地址信息*/struct soc原创 2013-09-29 20:50:07 · 1238 阅读 · 0 评论 -
select:编程思想
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非转载 2013-10-01 08:55:29 · 605 阅读 · 0 评论 -
select poll epoll 原理解析
select, poll和epoll的区别2010-06-29 21:47:13标签:pollselect 休闲 职场随着2.6内核对epoll的完全支持,网络上很多的文章和示例代码都提供了这样一个信息:使用epoll代替传统的poll能给网络服务应用带来性能上的提升。但大多文章里关于性能提升的原因解释的较少,这里我将试分析一下内核(2.6.21.1)代码中转载 2013-10-01 22:50:59 · 1963 阅读 · 0 评论 -
各种排序 大总结
前段时间仔细学习了各种排序算法,算是恶补吧,谁叫咋本科不努力,列举了个表格,空间复杂度没写的就是常数级。原创 2013-07-29 16:06:13 · 613 阅读 · 0 评论 -
这部分主要介绍链表 包括基本的链表建立 删除 插入,以及常用的链表环的检测,环起点,链表交叉,交叉点
链表的建立 删除 插入 #includeusing namespace std;templateclass link{ public: link(T d,link* L) { Data=d; next=L; } link* NEXT()const { return next; } T ReadData()c原创 2013-08-05 15:05:29 · 703 阅读 · 0 评论 -
操作系统 分页原理
操作系统 页表的原理转载 2013-08-02 12:05:54 · 639 阅读 · 0 评论 -
Autodesk面试技术题解答
Autodesk面试技术题解答1. 在类的普通成员函数中调用虚函数,情况是怎么样的?(对象、引用、指针)多态, 事实上,这是 Template Method模式的关键 2. 关于成员变量初始化顺序,几个有依赖关系的成员变量要初始化,让写出构造函数。在初始化列表中,成员变量的初始化顺序是其在类中声明顺序,而非列表中的顺序。3. 写一个双链表。转载 2013-05-07 15:16:08 · 505 阅读 · 0 评论 -
重载 覆盖 隐藏 之解析 及 基类和父类指针的调用问题
很久没写文章,一直在看别人的博客,今天也写篇,一则回报各位网友的知识恩赐,二则也为 了提高自己。声明:由于本人知识有限,如有纰漏,直接指正,以免误导各位! 重载:函数名字一样,返回类型和参数可以不一样,编译器链接时,会加上参数类型检查(c没有函数参数类型检查,所以C 没有重载) 覆盖:出现于类的继承中,基类的函数不起作用,注意是通过基类的指针或是引用来访问派生类(虚函数的重要特原创 2013-05-10 23:12:24 · 511 阅读 · 0 评论 -
面试题 c++
求下面函数的返回值(微软)[cpp] view plaincopy{ int countx = 0; while(x) { countx ++; x = x&(x-1); } return countx; } 假定x = 9999. 答案:转载 2013-06-13 17:24:46 · 384 阅读 · 0 评论 -
面试题-腾讯
腾讯2009校园招聘(软件开发职位方向笔试题与答案) 2011-05-11 19:39:21| 分类: 笔试面试 | 标签:腾讯 2009 笔试题 |字号 订阅软件开发职位方向笔试试题(A1卷) 考试时长:120分钟一、单项选择题。(每个选项3分,20个选项,共60分)1. 在一个单链表中,若p所指转载 2013-06-14 08:40:03 · 641 阅读 · 0 评论 -
面试题
1、实现一个函数,对一个正整数n,算得到1需要的最少操作次数。操作规则为:如果n为偶数,将其除以2;如果n为奇数,可以加1或减1;一直处理下去。例子:func(7) = 4,可以证明最少需要4次运算n = 7n-1 6n/2 3n-1 2n/2 1要求:实现函数(实现尽可能高效) int func(unsign int n);n为输入,返回最小的运算次数。给出思路(转载 2013-07-05 10:58:51 · 436 阅读 · 0 评论 -
操作系统总结
的原创 2013-07-30 18:07:34 · 176 阅读 · 0 评论 -
贪心复习
前言复习一下贪心算法,主要涉及俩个经典题目,这里重现一下,活动选择和部分背包问题,主要分三部分,贪心的基本概念,活动选择,部分背包问题。贪心的基本概念所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。这是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。在动态规划算法中,每步所做的选择往往依赖于相关子问题的解。因而只有在解出相关子原创 2013-08-01 12:17:20 · 556 阅读 · 0 评论 -
快排和二分的复习
过了很长时间了,怕自己忘了,重写一下快排和二分。 void fastSort(int * arr,int n,int m){ int tmp; if(m-n<1) return;//退出递归的条件 int partition=arr[m];//分割元素 int i=n-1;//double pointer //int j=n; for(int j原创 2013-07-25 16:05:52 · 753 阅读 · 0 评论 -
爱奇艺 笔试题
一个数组大小N,由0到N-1之间的数组组成,或重复,或不存在,请统计每个数字出现的次数。void parseArr(int arr[], int n){ for (int i=0; i<n; i++) { arr[arr[i] % n] += n; } for (int i=0; i<n; i++) {原创 2013-09-29 17:54:41 · 3149 阅读 · 0 评论