范文无忧网面试笔试笔试回答

人民搜索实习生招聘笔试题

12月11日 编辑 fanwen51.com

[结构化面试题型]结构化面试题型 结构化面试只要考生在考前有一个充分的准备,面试成绩是可以迅速提高的。 但要想在面试中取得好成绩,就必须对结构化面试的各种题型及其解题思路有一个清晰的把...+阅读

1、打印汉诺塔移动步骤,并且计算复杂度。

方法是递归,将n-1层移到中间柱,然后将最底层移到目标柱,然后再把n-1层移到目标柱。

f(n) = 2f(n-1) + 1 , f(1) = 1

f(n) + 1 = 2( f(n-1) + 1 )

f(n) = 2^n - 1

T(n) = O(2^n);

2、计算两个字符串的是否相似(字符的种类,和出现次数相同)

3、定义二叉树,节点值为int,计算二叉树中的值在[a,b]区间的节点的个数。

任意一种方式遍历二叉树,如果值在 [a,b] 之间,计数器+1

4、一条路有k可坑,每次能跳平方数步长(1 4 9 16。。),不能跳到坑里,从a跳到b最少几步?(动态规划题)

动态转移方程

f(n) = min( f(大于n的第一个平方数 -n) ,f(n- 小于n的第一个完全平方数) +1 )

【 补充 ing

在一个坐标轴上, 给定两个点,一个起点,一个终点,起点有一个方块,方块可以左右移动,但是移动的长度只能是平方数长(1,4,9,16 ) ,同时坐标轴上还有洞,移动的过程中不能越过这个洞,不然会掉下去,问 由起点到终点 至少需要多少次移动,不能到达返回-1】

5、给一个整数数组,求数组中重复出现次数大于数组总个数一半的数。

int MoreThanHalfNum(int *a , int n )

{

int i , k , num = a[0];

int times = 1;

for(i = 1 ; i n ; ++i)

{

if(times == 0)

{

num = a[i];

times = 1;

}

else if(a[i] != num)

--times;

else

++times;

}

k = 0;

for(i = 0 ; i n ; ++i)

{

if(a[i] == num)

++k;

}

if(k*2 = n)

return -1; 没有找到

else

return num; 找到

}

6、一个128bits 的二进制流,要求找出 里面包含 某8bits 二进制流的数目。

如果只是一个128bit的流,那就用int对其某个字节,然后移位比较,然后int向后移动3个字节,继续移位比较。如果是很多128bit的流,可以模仿kmp,用上面的方法,每次取int的8bit和目标8bit进行AND操作,结果只有256种可能,事先存一个256的表,查表决定向后跳跃的bit数。

7、交换整型的奇数位和偶数位

问题定义:

Write a program to swap odd and even bits in an integer with as few instructions as possible(e.g, bit 0 and bit 1 are swapped, bit 2 and bit 3 are swapped, etc)

int SwapOddEvenBit(int x)

{

return ( ((x 0xaaaaaaaa) 1) | ((x 0x55555555) 1));

}

int main(void)

{

int a = 171;

printf(%d\n, SwapOddEvenBit(a));

return 0;

}

8、试着用最小的比较次数去寻找数组中的最大值和最小值。

解法一:

扫描一次数组找出最大值;再扫描一次数组找出最小值。

比较次数2N-2

解法二:

将数组中相邻的两个数分在一组, 每次比较两个相邻的数,将较大值交换至这两个数的左边,较小值放于右边。

对大者组扫描一次找出最大值,对小者组扫描一次找出最小值。

比较1.5N-2次,但需要改变数组结构

解法三:

每次比较相邻两个数,较大者与MAX比较,较小者与MIN比较,找出最大值和最小值。

方法如下:先将一对元素互相进行比较,然后把最小值跟当前最小值进行比较,把最大值跟当前最大值进行比较。因此每两个元素需要3次比较。如果n为奇数,那么比较的次数是3*(n/2)次比较。如果n为偶数,那么比较的次数是3n/2-2次比较。因此,不管是n是奇数还是偶数,比较的次数至多是3*(n/2),具体的代码如下:

void GetMaxAndMin(int *arr , int n , int max , int min)

{

int i = 0 ;

if(n 1) 奇数

{

max = min = arr[i++];

}

else

{

if(arr[0] arr[1])

{

max = arr[0];

min = arr[1];

}

else

{

max = arr[1];

min = arr[0];

}

i += 2;

}

for( ; i n ; i += 2)

{

if(arr[i] arr[i+1])

{

if(arr[i] max)

max = arr[i];

if(arr[i+1] min)

min = arr[i+1];

}

else

{

if(arr[i+1] max)

max = arr[i+1];

if(arr[i] min)

min = arr[i];

}

}

}

延伸阅读:

2015百度校招产品经理笔试题汇总各大互联网公司的校招基本已经告一段落了,不知道各位小伙伴们都有哪些收获呢?纵观各大公司产品经理笔试题,百度的题目既有难度、又有创意。下面为大家收集了2015年百度全部地...

搜狐2015校招产品运营笔试题地点:武汉 岗位:产品经理 一、单选题 1、 dau是指什么: 2、 直播罗永浩王自如论战的网站是: 3、 Axure文件的后缀名是 二、多选题 1、 下列哪款软件不是打车软件() A、嘀嘀 B、...

组织协调类面试题突破技巧计划组织协调类面试题是直接考察考生能力的面试题型之一,其根据招考职位来设计试题,通过考生在某一特定情景下开展工作的思路来考察考生解决问题的能力,也是公务员考试中较为常...

阿里巴巴面试题一个人掉在树上阿里巴巴马云曾经出过一道经典的面试题,以下就是这道题的原题和解析,同学们,你们是怎么解答这道题的呢?和大家分享一下吧! 阿里巴巴面试题一个人掉在树上 答案一: 尽量不要动,静...

2015年阿里巴巴校园招聘笔试题笔试时间为2014年8月29日,均为网上答题。第一部分为单选题,共20题,要在40分钟内完成。每个人的选择题都不一样,应该是后台有题库,每个人的试卷都是随机生成的。第二部分为附加题,...

阿里巴巴面试题java众所周知阿里巴巴是软件及互联网公司!Ja就是软件工作者必须要掌握的技术!如果有意愿加入阿里巴巴的朋友可以阅读这篇:阿里巴巴面试题ja!学习学习! 阿里巴巴面试题ja【1】 1、...

2014年雅虎笔试题分享1. 端口22协议 2. 操作系统线程和进程不共享的是() 3. 给出前序中序遍历的结果,求后序遍历的结果。 4. 死锁的必要条件。 5. 8个人分成2组,每组4人,问某两个人在一组的概率是()...

百度2015软件开发工程师笔试题百度的题总体来说不难,都是一些基础的题。好像近几年都有这样的趋势,计算机网络,操作系统,数据库,每个基础课出一道题。接着是三道程序设计题。最后是系统设计题。所以好好看计算...

实习生简历自我介绍第一篇大学不仅让我懂得了如何往学习,同时还让我学会了怎样往做人,这是我最大的收获。强烈的事业心以及求知欲,是我生存的信念和武器。没有创新就没有长久的生存,大胆的尝试是我...

推荐阅读
图文推荐
栏目列表