Kotlin Leetcode - 1137. N-th Tribonacci Number
題目連接:https://leetcode.com/problems/n-th-tribonacci-number/
class Solution {
fun tribonacci(n: Int): Int {
}
}}
解題思路
這一題如果用遞迴的做法
class Solution {
fun tribonacci(n: Int): Int {
return when {
n == 0 -> 0
n == 1 -> 1
n == 2 -> 1
else -> tribonacci(n-3) + tribonacci(n-2) + tribonacci(n-1)
}
}
}
會得到超時的結果
所以必須用其他思考方式
我們可以用一個陣列裝前三個數字
然後用迴圈的方式
計算下一個數字後存入迴圈
來得到最後結果
Kotlin 參考解答
使用陣列儲存內容的方式如下
class Solution {
fun tribonacci(n: Int): Int {
val arr = intArrayOf(0, 1, 1)
for (i in 3..n) {
arr[i % arr.size] = arr.sum()
}
return arr[n % arr.size]
}
}
- 回到 leetcode 列表