在白板考试期间,监考人员要求这个非常常见的算法问题.我的工作是观察,倾听并客观地判断所给出的答案,但我既没有控制这个问题,也没有与回答的人互动.分析问题的时间有五分钟,候选人可以编写子弹笔记,伪代码(这在实际代码编写期间允许,只要明确指出,人们包括伪代码作为注释或TODO任务在搞清楚算法得到奖励积分之前).
得到这个问题的人无法在现场开始使用递归算法,因此监考人员最终逐件引导他进入HIS解决方案,在我看来这不是最优的(好吧,与我选择的解决方案不同)在代码优化方面很难客观地评价某人.
宝洁:
public class Staircase {
public static int stairs;
public Staircase() {
int a = counting(stairs);
System.out.println(a);
}
static int counting(int n) {
if (n < 0)
return 0;
else if (n == 0)
return 1;
else
return counting(n - 1) + counting(n - 2) + counting(n - 3);
}
public static void main(String[] args) {
Staircase child;
long t1 = System.nanoTime();
for (int i = 0; i < 30; i++) {
stairs = i;
child = …Run Code Online (Sandbox Code Playgroud)