SUMTEC -- There's a thing in my bloglet.

But it's not only one. It's many. It's the same as other things but it exactly likes nothing else...

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  207 随笔 :: 19 文章 :: 1637 评论 :: 12 Trackbacks

假如我是考官,下面的就是程序方面的题目(偏向数据结构和算法,还有逻辑)。不过很可惜我不是考官,所以只好用来考考大家,娱乐娱乐了:

1、对著名的八皇后问题,你认为最多要用多少个bit就可以记录任意一个合法解的棋谱?为什么?30分钟内作答。

2、我们知道,根据同一棵二叉树的前序和后序遍历输出,可能构造出一个或多个不同的二叉树,这些二叉树都符合这样的前序和后序遍历输出结果。
    假设有一棵N个节点的二叉树,要求你根据其前序和后序遍历输出生成所有可能的二叉树的中序遍历输出。如果规定:
  a、产生一个遍历输出的一个节点的时间复杂度是A
  b、任意两个遍历输出之间的任意两个节点间的比较的时间复杂度为B
  c、函数调用的时间复杂度是C(主函数和系统函数排除在外),空间复杂度是X(调用栈空间消耗)
  d、每一个遍历输出当中的一个节点的空间复杂度为Y
那么你预计最好的程序其时间复杂度能够达到O(?),空间复杂度呢?为什么?一天内作答。

3、对于下面的程序(.NET的),你打算怎么进行优化?并请说出优化的根据。15分钟内作答。

public float Test(float A, float B)
{
  
float C;
  
float newB;
  
float eB;

  C 
= A + B;
  newB 
= C - A;
  eB 
= newB - B;
  newB 
= B - eB;

  
if (newB == B)
  
{
    
return B;
  }

  
else
  
{
    
return A;
  }

}


4、假设需要保存并处理某类“总共有1W个节点的有向加权图”,其中每个节点包括4Bytes的节点编号,4Bytes的权值,而引用每一个节点将需要占用4Bytes的空间。进行处理的机器,其内存有限。现在如果要你设计保存该图的数据结构,允许你向我提出一个问题,那么你会问什么?为什么要这么问?5分钟内作答。



其实我也没有绝对权威的答案,不过我想至少有一个较优的答案,尤其对2、3两道题来说。

posted on 2004-07-02 16:15 Sumtec 阅读(1122) 评论(11)  编辑 收藏 所属分类: 公司

评论

实在惭愧,我只对第3题有的想法,其它一概不懂,汗
  回复  引用  查看    

#2楼  2004-07-02 18:33 sumtec      
呵呵,没关系啊。会哪题做哪题好了。
  回复  引用  查看    

#3楼  2004-07-02 22:37 somebody [未注册用户]
第一题,如果最多那就大了去了。。。照着多的描述就是了
最少一个1-8的数组就行
第二题,时间复杂度大概O(n^2),空间不知道
第三个,
public float Test(float A, float B)
{
return B
}
第四个,不会。。

  回复  引用    

#4楼  2004-07-02 23:59 笨笨蜗牛      
对于题3,float数因为精度的问题,答案应该是不确定的:

虽然C=A+B,但不一定有B=C-A。

所以没有确定的答案。

如果一定要简化,那我的答案就同楼上的相反,是return A了。

不过,如果从数学的角度考虑,应该是楼上的正确。

所以,象这样的问题,其实是白痴题,不懂也许能做对,懂了反而因为考虑太多做错了。
  回复  引用  查看    

#5楼  2004-07-03 00:02 笨笨蜗牛      
或者这样答题3:

return (A+B)-A==B?B:A;


呵呵,没有注意,楼主修改了主贴内容。
  回复  引用  查看    

#6楼  2004-07-03 11:12 FantasySoft      
第一题:最快想到的是64bit,这是从棋盘的角度考虑的。因为棋盘上有64个位置;如果从棋子的角度考虑,就只需要48bit了,因为一个6bit就能确定一个棋子的位置。
  回复  引用  查看    

如果做出来,月薪是多少?
呵,出题要现实一些,国内的现状不乐观呐。
1、2、4题可以用来考察一下刚毕业的大学生,估计没问题,至于第3题,涉及到一些CLR的知识,是不是不现实?
而且如果综合性真的那么强,做得出题的人何苦去你的公司呢?

国内招人就是这样,无聊+无趣。
经济效益才是企业的首位,同样的,你不能要求毕加索能够给你好好地画出一个鸡蛋来!
  回复  引用    

#8楼  2004-07-03 21:47 Sumtec      
@寒枫天伤:
呵呵,第3题考的好像不是CLR方面的知识,而是纯粹数学意义上的问题哦。

……问题还是不要上纲上线的好,比如高考,对,没错,很有问题,不能够正确体现一个人的所有素养,可是至少它和一部分的素养有关,而且正相关。(虽然跟其他的素养可能负相关)

毕加索不能够好好的画出一个鸡蛋来,但是达芬奇可以吧?

经济效益是首位,那么会不会存在根据空间花费,或者速度花费来选择购买谁的产品的可能存在呢?如果可能,那么是否有这方面特长的人会是做这样产品的公司的选择呢?
  回复  引用  查看    

#9楼  2004-11-04 13:05 Leo [未注册用户]
棋谱是所有步骤:其中一步的确是6bit,但还要留出2bit纪录此步的id(在此100步内),这样100步内的解需要800bit,即100bytes

初步想法
email: aceterm@hotmail.com
有意见来信商讨
  回复  引用    

#10楼  2004-11-09 17:56 Blaze      
我也来出题 一个basic时代的老题了
不使用第三方变量将A,B交换数值
  回复  引用  查看    

#11楼  2004-12-29 11:38 哈哈 [未注册用户]
记录任意一个合法解的棋谱
只是记录那两个字节就可以了
16BIT
8*8=64

  回复  引用    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  博客园首页

  新闻频道

  社区

  小组

  博问

  网摘

  闪存

  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2004-07-02 23:41 编辑过
成果网帮您增加网站收入


相关链接: