爬楼梯 java_Leetcode 70.爬楼梯(Java)
生活随笔
收集整理的這篇文章主要介紹了
爬楼梯 java_Leetcode 70.爬楼梯(Java)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:
假設你正在爬樓梯。需要 n 階你才能到達樓頂。
每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢?
注意:給定 n 是一個正整數。
示例 1:
輸入: 2
輸出: 2
解釋: 有兩種方法可以爬到樓頂。
1 階 + 1 階
2 階
示例 2:
輸入: 3
輸出: 3
解釋: 有三種方法可以爬到樓頂。
1 階 + 1 階 + 1 階
1 階 + 2 階
2 階 + 1 階
解題思路:
使用分治法,對n個臺階,用一個數組保存其解,a[1] = 1,a[2] = 2, k >= 2,有a[k] = a[k-1]+a[k-2].
代碼:
public int climbStairs(int n) {
int result = 0;
if(n == 1)
{
return 1;
}
else if(n == 2)
{
return 2;
}
else if(n > 2)
{
int[] ways = new int[n];
ways[0] = 1;
ways[1] = 2;
for(int i = 2 ; i < ways.length ; i++)
{
ways[i] = ways[i - 1] + ways[i - 2];
}
result = ways[ways.length - 1];
}
return result;
}
總結
以上是生活随笔為你收集整理的爬楼梯 java_Leetcode 70.爬楼梯(Java)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电汇多久到账?电汇和转账的区别
- 下一篇: 国债逆回购会亏损本金吗?注意这两种情况