首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

笔试三

2012-10-06 
笔试3创新工场今晚的笔试很有意思,吸取下上次的教训:1.破坏互斥中的“环路等待”的算法,我认为是“银行家算法

笔试3
创新工场今晚的笔试很有意思,吸取下上次的教训:
1.破坏互斥中的“环路等待”的算法,我认为是“银行家算法”,因为这样就可以保证至少一个得到分配,环路等待就无从谈起了,但从网上查的一些资料是资源有序分配法,看来想错了
2.A*B的棋盘,只能走(x+1,y+2)、(x+1,y)、(x,y+1)、(x+2,y)四个方向,从(0,0)走到(A-1,B-1),个人认为采用递归算法;

long getpathnumber(x,y){
if(x+1==A-1&&y+2==B-1)||.....................//满足终止条件;
  return 1;//找到一条路
  else{
       return getpathnumber(x+1,y+2)+
          getpathnumber(x+1,y)+
          ................+
          ................;//朝四个方向走
  }
}

3.算一个超大数的因子的和,个人采用
struct node{
   boolean flag; //代表该数是否已是因子;
   long  num;
}

for(long i=0;i<n/2;i++){
  if(n/i==0&&nodes[i].flag==false){
     sum=sum+i+n/i;
  }
}

最后一题灭有时间了,应该是采用动态规划思想做的
创新工场出的题还是挺好的,个人学习学习了很多

热点排行