人搜实习生面试题
2012-05-18 21:49
176 查看
/article/1422719.html
http://topic.csdn.net/u/20120513/20/f6d48eeb-55f5-4d78-8fc0-0dea165c00df.html
4、一条路有k可坑,每次能跳平方数步长(1 4 9 16。。),不能跳到坑里,从a跳到b最少几步?(动态规划题)
动态转移方程
f(n) = min( f(大于n的第一个平方数 -n) ,f(n- 小于n的第一个完全平方数) +1 )
【 补充 ing
在一个坐标轴上, 给定两个点,一个起点,一个终点,起点有一个方块,方块可以左右移动,但是移动的长度只能是平方数长(1,4,9,16 ••••) ,同时坐标轴上还有洞,移动的过程中不能越过这个洞,不然会掉下去,问
由起点到终点 至少需要多少次移动,不能到达返回-1】
C/C++ code
http://topic.csdn.net/u/20120513/20/f6d48eeb-55f5-4d78-8fc0-0dea165c00df.html
4、一条路有k可坑,每次能跳平方数步长(1 4 9 16。。),不能跳到坑里,从a跳到b最少几步?(动态规划题)
动态转移方程
f(n) = min( f(大于n的第一个平方数 -n) ,f(n- 小于n的第一个完全平方数) +1 )
【 补充 ing
在一个坐标轴上, 给定两个点,一个起点,一个终点,起点有一个方块,方块可以左右移动,但是移动的长度只能是平方数长(1,4,9,16 ••••) ,同时坐标轴上还有洞,移动的过程中不能越过这个洞,不然会掉下去,问
由起点到终点 至少需要多少次移动,不能到达返回-1】
C/C++ code
int f(int n) { if(n ==1) return 1; if(n == 2) return 2; int re = (int)sqrt(1.0*n); if(re*re == n) return 1; int l = re ; int r = re + 1; return min(f(r*r -n) ,f(n- l*l) ) + 1; } int getMinStep(int startPos ,int endPos , int *holePos ,int size) { int i ; for( i = 0 ; i < size ; i ++) { if( (startPos - holePos[i]) * (endPos - holePos[i]) < 0 ) return -1; } int n = abs(endPos - startPos);
printf("%d",f(n));
}
相关文章推荐
- 一道实习生面试题
- 2013网易游戏暑期实习生面试题
- C++研发工程师实习生面试题整理
- 阿里菜鸟JAVA实习生一面面试题
- 2014年百度实习生面试题及总结
- 2011百度实习生面试题-二叉树“弓”字形遍历
- 百度数据挖掘工程师实习生笔试面试题
- 腾讯2012年实习生windows客户端面试题
- 某公司Java实习生面试题整合
- 新鲜出炉~H3C售前工程师(实习生)技术面试题
- 360算法工程师 实习生电面试题
- 2014年百度实习生面试题及总结
- 常见面试题整理+网易实习生面试
- 新浪实习生面试题
- 【实习生笔试面试题】2013年搜狐SOHU实习生技术笔试题
- Java 实习生面试题
- 2012百度实习生招聘面试题
- 算法面试题-今日头条2017客户端工程师实习生笔试题4:或与加
- OSPF的触发更新(腾讯实习生面试题)
- 各大公司(Google,Microsoft,Baidu, Microsoft Research Asia etc.)实习生面试题总汇