常見的一道演算法題:
乙隻青蛙一次可以跳上1級台階,也可以跳上2級台階。求該青蛙跳上乙個 n 級的台階總共有多少種跳法。
解法我想很多人一想應該就知道,可以遞迴的思路,動態規劃的思路等,**如下,重點不在這裡,不在詳述:
//遞迴
public static int frogjumps_1(int n)
//帶備忘錄的遞迴
public static int frogjumps_2(int n)
private static int helper(int n, int memo)
//dp,貌似也算不上dp問題,沒有求最值
public static int frogjumps_3(int n)
}//列印出二叉數所有路徑
printmultitree(dp[n], n);
return dp[n].val;
}private static void printmultitree(node1 root, int n)
private static void printmultipath(node1 node, int path, int n, int pos) else
public static int frogjumps_1(int n)
public static int frogjumps_2(int n)
private static int helper(int n, int memo)
public static int frogjumps_3(int n)
}//列印出二叉數所有路徑
printmultitree(dp[n], n);
return dp[n].val;
}private static void printmultitree(node1 root, int n)
private static void printmultipath(node1 node, int path, int n, int pos) else ;
backtrack(nums, n, res);
}//跳任意步
private static void frogjumps_7(int n)
if(n<0)
return;
for(int i=0; i}
青蛙跳台問題
1 乙隻青蛙一次可以跳上 1 級台階,也可以跳上2 級。求該青蛙跳上乙個n 級的台階總共有多少種跳法。分析 要麼從倒數第二階跳上去,要麼從倒數第三階跳上去.2 乙隻青蛙一次可以跳上1級台階,也可以跳上2 級 它也可以跳上n 級,此時該青蛙跳上乙個n級的台階總共有多少種跳法?用fib n 表示青蛙跳上...
青蛙跳台階
乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。解題思路 1 如果兩種跳法,1階或者2階,那麼假定第一次跳的是一階,那麼剩下的是n 1個台階,跳法是f n 1 2 假定第一次跳的是2階,那麼剩下的是n 2個台階,跳法是f n 2 3 總跳法為 f n f n...
青蛙跳台階
之前面試遇到了這種題目,不會,後來搜尋了一下,感覺分析的很好 青蛙跳乙個n階的台階,每次可以跳1階或者2階,求跳完n階y有多少種方法。分析 n 1,f n 1 n 2,f n 2 n 3,f n 3 n 4,f n 5 可以發現 f n f n 1 f n 2 由此也可以推想 比如要跳到第4階樓梯上...