Recca Chao 的 gitHub page

推廣網站開發,包含 Laravel 和 Kotlin 後端撰寫、自動化測試、讀書心得等。Taiwan Kotlin User Group 管理員。

View on GitHub

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]
    }
}