25道常见算法面试题

25道常见算法面试题

ID:41139198

大小:21.82 KB

页数:8页

时间:2019-08-17

25道常见算法面试题_第1页
25道常见算法面试题_第2页
25道常见算法面试题_第3页
25道常见算法面试题_第4页
25道常见算法面试题_第5页
资源描述:

《25道常见算法面试题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Problem1 :Isitaloop?(判断链表是否有环?)Assumethatwehaveaheadpointertoalink-list.Alsoassumethatweknowthelistissingle-linked.CanyoucomeupanalgorithmtocheckwhetherthislinklistincludesaloopbyusingO(n)timeandO(1)spacewherenisthelengthofthelist?Furthermore,canyoudosowithO(n)timeandonlyoneregister?方法:使用两个

2、指针,从头开始,一个一次前进一个节点,一个前进2个节点,则最多2N,后两个指针可以重合;如果无环,则正常停止。同样的,可以找到链表的中间节点。同上。Problem2:设计一个复杂度为n的算法找到链表倒数第m个元素。最后一个元素假定是倒数第0个。提示:双指针查找Problem3:用最简单的方法判断一个LONG整形的数A是2^n(2的n次方)提示:x&(x-1)Problem4:两个烧杯,一个放糖一个放盐,用勺子舀一勺糖到盐,搅拌均匀,然后舀一勺混合物会放糖的烧杯,问你两个烧杯哪个杂质多?提示:相同。假设杂质不等,那么将杂质放回原杯中,则杯中物体重量必变化,不合理。Problem

3、5:给你a、b两个文件,各存放50亿条url,每条url各占用64字节,内存限制是4G,让你找出a、b文件共同的url。法1:使用hash表。使用a中元素创建hash表,hash控制在适当规模。在hash中查找b的元素,找不到的url先存在新文件中,下次查找。如果找到,则将相应的hash表项删除,当hash表项少于某个阈值时,将a中新元素重新hash。再次循环。法2:对于hash表项增加一项记录属于的文件a,b。只要不存在的表项即放入hash表中,一致的项则删除。注意:可能存在很多重复项,引起插入,删除频繁。Problem6:给你一个单词a,如果通过交换单词中字母的顺序可以得

4、到另外的单词b,那么定义b是a的兄弟单词。现在给你一个字典,用户输入一个单词,让你根据字典找出这个单词有多少个兄弟单词。提示:将每个的单词按照字母排序,则兄弟单词拥有一致的字母排序(作为单词签名)。使用单词签名来查找兄弟单词。Problem7:五桶球,一桶不正常,不知道球的重量和轻重关系,用天平称一次找出那桶不正常的球。Problem8:给两个烧杯,容积分别是m和n升(m!=n),还有用不完的水,用这两个烧杯能量出什么容积的水?m,n,m+n,m-n以及线性叠加的组合Problem9:写出一个算法,对给定的n个数的序列,返回序列中的最大和最小的数。Problem10:你能设计

5、出一个算法,只需要执行1.5n次比较就能找到序列中最大和最小的数吗?能否再少?提示:先通过两两比较,区分大小放入“大”,“小”两个数组中。从而最大数在“大”数组中,最小数在“小”数组中。Problem11:给你一个由n-1个整数组成的未排序的序列,其元素都是1到n中的不同的整数。请写出一个寻找序列中缺失整数的线性-时间算法。提示:累加求和Problem12:voidstrton(constcharsrc,constchartoken)假设src是一长串字符,token存有若干分隔符,只要src的字符是token中的任何一个,就进行分割,最终将src按照token分割成若干单词

6、。找出一种O(n)算法?提示:查表的方法,将所有的字符串存储在长度为128的数组中,并将作为分隔符的字符位置1,这样即可用常数时间判断字符是否为分隔符,通过n次扫描,将src分割成单词。Problem13:一个排好序的数组A,长度为n,现在将数组A从位置m(m

7、从位置m(m

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。