微创软件面试题!本人不会 忘高手解答
本帖最后由 happy664618843 于 2012-03-03 15:46:24 编辑
平常算法 数据结构用得比较少 遇到这样的面试题不会做! 杯具了...
试卷是英语的 我翻译大概是这个意思!有错误还忘高手指出来...首先进行二轮电话面试 最后才去公司复试。 面试差不多三个小时! 基本都是在问些项目经历 工作经验 c#底层
算法 T-SQL 及英语阅读理解 口语 Web方面的知识 等... 下面几个题都是我记得比较清楚 写下来 忘高手解答...还有一个二叉树的数据结构 记得不是很清楚..........几道题如下....
1.定义一个int类型的数组 且定义的元素要超过5个 求出前5个最大的数值!
(注:不能排序)
2.现在有一个方法是这样的 List<int> PrintArray(int inputNum)
当输入10 返回2,5
当输入20 返回2,5
当输入30 返回2,3,5
......
以此类推:写出函数
3.现在有一个方法 bool returnbool(int num)
eg:当输入2 结果返回true
当输入7 结果返回 false
当输入10 结果返回 false
当输入16 结果返回true
以此类推:写出方法......
------解决方案--------------------我做第二题
List<int> PrintArray(int inputNum)
{
if(inputNum==10)
return new List<int>{2,5};
else if(inputNum==20)
return new List<int>{2,5};
else if(inputNum==30)
return new List<int>{2,3,5};
}
------解决方案--------------------1.是排序
2.是质数分解
3.似乎是判定是否是2的n次方
------解决方案--------------------LZ,微创还问脑筋急转弯么?
诸如上海东方明珠塔有多高之类的...
那年的满分答案是:唐骏说有多高就有多高。。。
第三题给的样本数据有点少
------解决方案--------------------第一题,直接插入?
第二题是分解成质因数吗?
第三题是什么呢?擦,我想起来是数学推理,
例如:2,7,10,16,()//下一个数是什么呢?
------解决方案--------------------1.建一个5长度的数组B,初始为A[0]~A[5],对B进行排序,穷举数据数组A,每个A[i]与B最小的值比较如果小于则继续,如果大于则插入到B数组中相应位置并丢弃掉B中最小的。穷举完毕则得到最大5个。
2.根据数值判断PrintArray应该是算出最小素数的种数。
10=2*5; 2,5
20=2*2*5; 2,5
30=2*3*5; 2,3,5
这里最简单的方式是列举出小于int.MaxValue的全部素数,并存放在数组A中。可以使用hashset记录最小素数种类。
递归算法
每次穷举A用。
判断inputNum是否能整除A[i],如果可以整除则向hashset中追加A[i],用inputNum/=A[i]继续递归;全部无法整除则退出递归。
穷举完毕后打印出hashset中全部值即可。
3.初步分析估计是判断 num是否是2的N次方而已。算法就不说了。
PS:最后鄙视一下sp1234
------解决方案--------------------
呵呵 呵呵 额呵呵呵
------解决方案--------------------SP毫无疑问是来砸场子的……
------解决方案--------------------天书
------解决方案--------------------我认为gzdiablo是求最小素数 的说法是对的,后面那题可能叫你分解后求全是2的数是真,其他为假
------解决方案--------------------我们公司也是这样的面试题
------解决方案--------------------------解决方案--------------------