第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

力扣1137題 解題思路和步驟 C++代碼實(shí)現(xiàn),力扣一共多少題

https://img1.sycdn.imooc.com/51f7b9680836b13306100526.jpg

一、题目分析

力扣1137题要求我们找到第N个泰波那契数。泰波那契数的定义是:T0 =0, T1 =1, T2 =1, 且在n >= 0的条件下 Tn+3 = Tn + Tn+1 + Tn+2。,当n = 4时,T4 = T3 + T2 + T1 = 4。这道题主要考查我们对递归动态规划的理解和运用。在思考解题方法时,我们可以考虑从简单的情况入手,逐步推导到一般情况。


二、递归解法思路

递归是一种直观的解法。我们可以直接根据泰波那契数的定义来编写递归函数。当n为0时,返回0;当n为1或2时,返回1。对于n大于2的情况,我们通过递归调用函数自身来计算泰波那契数。即返回泰波那契(n - 1) + 泰波那契(n - 2) + 泰波那契(n - 3)。递归解法存在一个问题,就是会有大量的重复计算。,在计算泰波那契(5)时,泰波那契(3)会被计算多次。递归函数重复计算泰波那契数计算边界条件这些方面需要我们仔细考虑。


三、动态规划解法思路

为了解决递归解法的重复计算问题,我们可以采用动态规划的方法。动态规划通常使用一个数组来保存已经计算过的结果。我们创建一个数组dp,其中dp[i]表示第i个泰波那契数。初始化dp[0] = 0,dp[1] = 1,dp[2] = 1。通过循环从3到n,依次计算dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3]。返回dp[n]即可。这种方法避免了重复计算,提高了效率。动态规划数组初始化循环计算效率提升这些要点在动态规划解法中很重要。


四、C++代码实现递归解法

int tribonacci(int n) { 
    if (n == 0) return 0; 
    if (n == 1 || n == 2) return 1; 
    return tribonacci(n - 1) + tribonacci(n - 2) + tribonacci(n - 3); }

五、C++代码实现动态规划解法

int tribonacci(int n) { 
    if (n == 0) return 0; 
    if (n == 1 || n == 2) return 1; 
    vector dp(n + 1); 
    dp[0] = 0; 
    dp[1] = 1; 
    dp[2] = 1; 
    for (int i = 3; i <= n; i++) { 
        dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3]; 
    } 
    return dp[n]; }

转自:力扣1137题 解题思路和步骤 C++代码实现,力扣一共多少题


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消