剑指 Offer 26. 树的子结构
class Solution {
public boolean isSubStructure(TreeNode A, TreeNode B) {
if(A==null || B==null) return false;
return isSon(A,B)|| isSubStructure(A.left,B) || isSubStructure(A.right,B);
}
public boolean isSon(TreeNode A,TreeNode B){
if(B==null) return true;
if(A==null || A.val!=B.val) return false;
else return isSon(A.left,B.left)&&isSon(A.right,B.right);
}
}
剑指 Offer 10- I. 斐波那契数列
class Solution {
public int fib(int n) {
if(n==0) return 0;
if(n==1) return 1;
int[] dp=new int[n+1];
dp[1]=1;
for(int i=2;i<n+1;i++){
dp[i]=dp[i-1]+dp[i-2];
dp[i]%=1000000007;
}
return dp[n];
}
}
剑指 Offer 10- II. 青蛙跳台阶问题
class Solution {
public int numWays(int n) {
if(n==0) return 1;
if(n==1) return 1;
int[] dp=new int[n+1];
dp[0]=1;
dp[1]=1;
for(int i=2;i<n+1;i++){
dp[i]=dp[i-1]+dp[i-2];
dp[i]%=1000000007;
}
return dp[n];
}
}
剑指 Offer 63. 股票的最大利润
class Solution {
public int numWays(int n) {
if(n==0) return 1;
if(n==1) return 1;
int[] dp=new int[n+1];
dp[0]=1;
dp[1]=1;
for(int i=2;i<n+1;i++){
dp[i]=dp[i-1]+dp[i-2];
dp[i]%=1000000007;
}
return dp[n];
}
}