面试笔试总结 20140321

网易有道笔试:

1.斐波那契递推方法的时间复杂度。

   麻痹本来就会这一道题,结果还选错了,头一热直接选了个平方,蛋碎。

2.各种排序方法里,最坏情况下空间复杂度为O(n)的:

就记得快排是,不定项选择题,没敢选归并排序。

3.平行线,相隔H,针长度L,与平行线有交点概率:

就记得是布丰投针,然后什么都不知道了,不知道怎么算,填空题没写出来。

答案:π≈(2ln)/(dm)
 

4。一个人从一副扑克牌里抽出八张,说我手里有王。另一个人从另一副牌里抽出8张,说我手里有大王。问:他俩谁有两个王的概率大。
哎,纯属渣渣,想了半天发现连概率题都不会算了,根本不知道咋算了。后来一寻思,第一个人要比第二个人多一种手里只有小王的情况,也就是先验概率分母会大一些,所以好像是第二个人手里有俩王的概率大吧。哎,谁要是会的话,教教我怎么求概率了,我是真特么不会了。
5.一道关于引用和指针,还有指针的引用的题,让你选择哪种方式能修改A的值,具体记不清了,反正是蒙的。
6.以下关于C++和java的说法中不正确的是:
A:xxxxxx
B:oooo
C:XXOOXXOO
D:ooXX
原谅我放纵不羁爱自由,根本看不懂题在说什么,不会就选C原则,我选了c
7。进程里线程间可以共享的东西有:
A堆  B栈 C静态变量 D寄存器变量
我蒙的A和C 

线程的共享资源包括:全局变量、地址空间、子进程、信号和信号服务程序等。

线程的私有资源:线程号:每个线程都有唯一的线程号、寄存器(程序寄存器和堆栈寄存器)、堆栈、信号掩码、优先级等。


8.安卓系统由哪个系统发展而来
蒙了个不认识的,我都不记得叫啥了,答案是尼玛linux,卧槽。

还有俩题,记不住了,绝逼是蒙的反正,一点印象没有了。


三道大题。
一。
单链表反序,O(1)辅助空间。
就写出来这道题了,目测这是我全篇卷子唯一拿分的地方。


二。字典排序,输入一个数,写出这个数在字典排序中的下一个数。
没写出来

三。5乘5矩阵A,时间复杂度尽可能低求其N次方后的矩阵MOD13后的矩阵。
不会,时间不够了,还要赶去百度,直接写了两笔递归,大概意思是N=N/2*N/2。。。。就是类似二分的意思


有道Over,被虐的凄惨无比,体无完肤。打车到百度,饭都没吃,还是迟到了,面试迟到真尼玛蛋疼。

一面,自我介绍,问了下PHP开发网站的项目,问网站架构,我没答出来,然后给了五道题。
1.   /a/b/c/e.php     /a/b/d/f.php
求他俩相对路径。
到最后也没做上来,他也没太详细说,大概意思是从头匹配,还要判断层级?不太会反正

2. 给一个URL,求其文件的类型名
比如http://www.baidu.com/a/b/c.php?id=1
输出php

跟他说应该用正则表达式吧,但是我不会。他说那换别的方法试试,然后尼玛我根本不知道标准URL啥样,就写了个从第三个“.”截取的代码,他说不对,url可能有多这个符号“.”
又给我举了个很多个url例子,后来我说入栈,然后从后往前截吧,截"/"号。他说也不对,有很多变态的url这样也不行,后来他告诉我截“?”号,哎蛋疼,反正各种不会。

3.二分,非递归,递归。

这个,尼玛。。。再不会。。。就不能忍了。。。

上来写个递归的发先接口留的不太好,给自己挖坑了,写的很乱,还不太对。后来写非递归的倒是把接口留的很顺利,写的还挺好,反正他看后说思路没什么问题。


4.一个文件10G,每行一个数。256M内存,让你查找和排序。不用写代码,就说思路就行
大数据的排序和查找吧这算,说用位图,类似哈希,他说装不下,我说那就分段吧,一次处理一部分,最后归并,他说哦,也可以,然后就没然后了

5.如何提高缓存的命中率。。。

直接说我没用过缓存。。。不知道。。。他就问以前做网站没用过缓存啊,我说没有,又问一点都不知道吗,我说看过点叫mem什么东西的缓存,他说memchache,啊,我说对,就是没用过,然后就没然后了。
然后竟然问我有啥问题没。。。哭了。。。这尼玛都能过。。。当时根本没想到会问问题,随便说了个垂直搜素部干啥的,然后听他说了一会就完了,他就让我等他同事。



二面、

1.介绍做过的比较复杂的项目。
尼玛。。LTED2D啊,我说国重啊,20人一起往死里干啊,特别牛逼啊。
2.20个人咋分配的。
硬件啊,物理层啊,高层啊,物理层还上下行啊,各种吹牛逼啊。
3.你在里边干叼的,遇到过找了很久不知道bug在哪的时候没。
我物理层啊,特别刁啊,各种turbo溢出啊,集成后根本不知道bug在哪啊,就是接着各种吹牛逼啊。
4.兄弟串的寻找,就是abc,acb,这都叫兄弟串,给你个文件,每行一个串,输入一个串,输出所有的兄弟串

昨天刚tm看过类似的啊,不过只是思路啊,思路就是哈希啊,先字典排序得到key,然后哈希链表存啊

5.你tm是不是在网上做过啊,怎么这么快。
是。看过类似的。
6。那你特么写出来吧。
。。。半个小时后。。。
写完了?
嗯,不过有问题
咋了?
不知道如何映射哈希,字符串作为key的话,数组下标不知道怎么弄,想了半天感觉用容器中的map存哈希比较好,但是map我不熟不会写
代码意思就是假设我已经有正常映射的哈希表了,我读出字符串,用sort排序下得到key,然后在hash数组中得到key的指针,然后头插法,
反正大概就是这个意思,代码写的乱七八糟。
7.算了,这个可能有点复杂,你写个简单的吧,反转字符串。
这个。。还是比较顺利写出来了,问我思路,我讲了一下,她说思路还可以。
8。有什么问题么
t妈的。。。又这个问题。。。那我就继续问垂直搜索干啥的,c++负责干啥,php负责干啥。
然后她就说了说,然后问我实习时间。然后临走的时候她跟我说,跟你直说吧,对你还比较满意,就是实习时间上太短了,3天都不能保证,我们还得比较下,巴拉巴拉的,然后就没然后了。


一血面,到此over。我是个渣,连斐波那契时间复杂度都不知道的渣,谁tm黑我我祝老彭天天找他。












  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
/****************************************************** * EasyX Library for C++ (Ver:20151015(beta)) * http://www.easyx.cn * * graphics.h * 基于 EasyX.h,实现在 VC 下实现简单绘图。 * 同时,为了兼容 Turbo C/C++ 和 Borland C/C++ 等一系 * 列开发环境中的 BGI 绘图库函数,做了相应扩展。 ******************************************************/ #pragma once #include <easyx.h> // 兼容 initgraph 绘图模式的宏定义(无实际意义) #define DETECT 0 #define VGA 0 #define VGALO 0 #define VGAMED 0 #define VGAHI 0 #define CGA 0 #define CGAC0 0 #define CGAC1 0 #define CGAC2 0 #define CGAC3 0 #define CGAHI 0 #define EGA 0 #define EGALO 0 #define EGAHI 0 // BGI 格式的初始化图形设备,默认 640 x 480 HWND initgraph(int* gdriver, int* gmode, char* path); void bar(int left, int top, int right, int bottom); // 画无边框填充矩形 void bar3d(int left, int top, int right, int bottom, int depth, bool topflag); // 画有边框三维填充矩形 void drawpoly(int numpoints, const int *polypoints); // 画多边形 void fillpoly(int numpoints, const int *polypoints); // 画填充的多边形 int getmaxx(); // 获取最大的宽度值 int getmaxy(); // 获取最大的高度值 COLORREF getcolor(); // 获取当前绘图前景色 void setcolor(COLORREF color); // 设置当前绘图前景色 void setwritemode(int mode); // 设置前景的二元光栅操作模式 /////////////////////////////////////////////////////////////////////////////////// // 以下函数仅为兼容早期 EasyX 的接口,不建议使用。请使用相关新函数替换。 // #if _MSC_VER > 1200 #define _EASYX_DEPRECATE(_NewFunc) __declspec(deprecated("This function is deprecated. Instead, use this new function: " #_NewFunc ". See http://www.easyx.cn/help?" #_NewFunc " for details.")) #define _EASYX_DEPRECATE_OVERLOAD(_Func) __declspec(deprecated("This overload is deprecated. See http://www.easyx.cn/help?" #_Func " for details.")) #else #define _EASYX_DEPRECATE(_NewFunc) #define _EASYX_DEPRECATE_OVERLOAD(_Func) #endif // 设置当前字体样式(该函数已不再使用,请使用 settextstyle 代替) // nHeight: 字符的平均高度; // nWidth: 字符的平均宽度(0 表示自适应); // lpszFace: 字体名称; // nEscapement: 字符串的书写角度(单位 0.1 度); // nOrientation: 每个字符的书写角度(单位 0.1 度); // nWeight: 字符的笔画粗细(0 表示默认粗细); // bItalic: 是否斜体; // bUnderline: 是否下划线; // bStrikeOut: 是否删除线; // fbCharSet: 指定字符集; // fbOutPrecision: 指定文字的输出精度; // fbClipPrecision: 指定文字的剪辑精度; // fbQuality: 指定文字的输出质量; // fbPitchAndFamily: 指定以常规方式描述字体的字体系列。 _EASYX_DEPRECATE(settextstyle) void setfont(int nHeight, int nWidth, LPCTSTR lpszFace); _EASYX_DEPRECATE(settextstyle) void setfont(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut); _EASYX_DEPRECATE(settextstyle) void setfont(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut, BYTE fbCharSet, BYTE fbOutPrecision, BYTE fbClipPrecision, BYTE fbQuality, BYTE fbPitchAndFamily); _EASYX_DEPRECATE(settextstyle) void setfont(const LOGFONT *font); // 设置当前字体样式 _EASYX_DEPRECATE(gettextstyle) void getfont(LOGFONT *font); // 获取当前字体样式 // 以下填充样式不再使用,新的填充样式请参见帮助文件 #define NULL_FILL BS_NULL #define EMPTY_FILL BS_NULL #define SOLID_FILL BS_SOLID // 普通一组 #define BDIAGONAL_FILL BS_HATCHED, HS_BDIAGONAL // /// 填充 (对应 BGI 的 LTSLASH_FILL) #define CROSS_FILL BS_HATCHED, HS_CROSS // +++ 填充 #define DIAGCROSS_FILL BS_HATCHED, HS_DIAGCROSS // xxx 填充 (heavy cross hatch fill) (对应 BGI 的 XHTACH_FILL) #define DOT_FILL (BYTE*)"\x80\x00\x08\x00\x80\x00\x08\x00" // xxx 填充 (对应 BGI 的 WIDE_DOT_FILL) #define FDIAGONAL_FILL BS_HATCHED, HS_FDIAGONAL // \\\ 填充 #define HORIZONTAL_FILL BS_HATCHED, HS_HORIZONTAL // === 填充 #define VERTICAL_FILL BS_HATCHED, HS_VERTICAL // ||| 填充 // 密集一组 #define BDIAGONAL2_FILL (BYTE*)"\x44\x88\x11\x22\x44\x88\x11\x22" #define CROSS2_FILL (BYTE*)"\xff\x11\x11\x11\xff\x11\x11\x11" // (对应 BGI 的 fill HATCH_FILL) #define DIAGCROSS2_FILL (BYTE*)"\x55\x88\x55\x22\x55\x88\x55\x22" #define DOT2_FILL (BYTE*)"\x88\x00\x22\x00\x88\x00\x22\x00" // (对应 BGI 的 CLOSE_DOT_FILL) #define FDIAGONAL2_FILL (BYTE*)"\x22\x11\x88\x44\x22\x11\x88\x44" #define HORIZONTAL2_FILL (BYTE*)"\x00\x00\xff\x00\x00\x00\xff\x00" #define VERTICAL2_FILL (BYTE*)"\x11\x11\x11\x11\x11\x11\x11\x11" // 粗线一组 #define BDIAGONAL3_FILL (BYTE*)"\xe0\xc1\x83\x07\x0e\x1c\x38\x70" // (对应 BGI 的 SLASH_FILL) #define CROSS3_FILL (BYTE*)"\x30\x30\x30\x30\x30\x30\xff\xff" #define DIAGCROSS3_FILL (BYTE*)"\xc7\x83\xc7\xee\x7c\x38\x7c\xee" #define DOT3_FILL (BYTE*)"\xc0\xc0\x0c\x0c\xc0\xc0\x0c\x0c" #define FDIAGONAL3_FILL (BYTE*)"\x07\x83\xc1\xe0\x70\x38\x1c\x0e" #define HORIZONTAL3_FILL (BYTE*)"\xff\xff\x00\x00\xff\xff\x00\x00" // (对应 BGI 的 LINE_FILL) #define VERTICAL3_FILL (BYTE*)"\x33\x33\x33\x33\x33\x33\x33\x33" // 其它 #define INTERLEAVE_FILL (BYTE*)"\xcc\x33\xcc\x33\xcc\x33\xcc\x33" // (对应 BGI 的 INTERLEAVE_FILL)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值