LeetCode-python 873.最長(zhǎng)的斐波那契子序列的長(zhǎng)度

題目鏈接
難度:中等 ??????類型: 數(shù)組


如果序列 X_1, X_2, ..., X_n 滿足下列條件,就說它是 斐波那契式 的:

n >= 3
對(duì)于所有 i + 2 <= n,都有 X_i + X_{i+1} = X_{i+2}
給定一個(gè)嚴(yán)格遞增的正整數(shù)數(shù)組形成序列,找到 A 中最長(zhǎng)的斐波那契式的子序列的長(zhǎng)度。如果一個(gè)不存在,返回 0 。

(回想一下,子序列是從原序列 A 中派生出來的,它從 A 中刪掉任意數(shù)量的元素(也可以不刪),而不改變其余元素的順序。例如, [3, 5, 8] 是 [3, 4, 5, 6, 7, 8] 的一個(gè)子序列)

示例1

輸入: [1,2,3,4,5,6,7,8]
輸出: 5
解釋:
最長(zhǎng)的斐波那契式子序列為:[1,2,3,5,8] 。

示例2

輸入: [1,3,7,11,12,14,18]
輸出: 3
解釋:
最長(zhǎng)的斐波那契式子序列有:
[1,11,12],[3,11,14] 以及 [7,11,18] 。

解題思路


以每個(gè)數(shù)作為斐波那契序列的第一個(gè)數(shù)a,以它之后的每一個(gè)數(shù)都做第二個(gè)數(shù)b,尋找a+b是否在原數(shù)列中
若在,計(jì)數(shù)器加1,并令a= b, b=a+b,繼續(xù)判斷a+b是否在原數(shù)列中
若不在,結(jié)算當(dāng)前的長(zhǎng)度,與當(dāng)前的最大長(zhǎng)度比較,更新當(dāng)前最大長(zhǎng)度

代碼實(shí)現(xiàn)

 class Solution(object):
    def lenLongestFibSubseq(self, A):
        """
        :type A: List[int]
        :rtype: int
        """
        s = set(A)
        n = len(A)
        res = 0
        
        for i in range(n-2):
            for j in range(i+1, n-1):
                count = 2
                a, b = A[i], A[j]
                while a+b in s:
                    a, b = b, a+b
                    count += 1
                res = max(res, count)
                
        return res if res>2 else 0

本文鏈接:http://www.itdecent.cn/p/184c6fdd4be2

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • BAT面試算法進(jìn)階(10)- 最長(zhǎng)的斐波那契子序列的長(zhǎng)度(暴力法)BAT面試算法進(jìn)階(8)- 刪除排序數(shù)組中的重復(fù)...
    CC老師_HelloCoder閱讀 1,617評(píng)論 1 1
  • 專業(yè)考題類型管理運(yùn)行工作負(fù)責(zé)人一般作業(yè)考題內(nèi)容選項(xiàng)A選項(xiàng)B選項(xiàng)C選項(xiàng)D選項(xiàng)E選項(xiàng)F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚閱讀 10,461評(píng)論 0 13
  • 在C語(yǔ)言中,五種基本數(shù)據(jù)類型存儲(chǔ)空間長(zhǎng)度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 3,993評(píng)論 0 2
  • 格列佛因?yàn)樯聿陌?,在?guó)家經(jīng)歷了幾件危險(xiǎn)的事情,他站在蘋果樹下,被落下的蘋果砸中。有一天,他被忽然下的冰雹砸的到處...
    陸藝博爸爸閱讀 110評(píng)論 0 0
  • 1. “聽說這十里外的荒山上的山洞里住了一只千年妖獸,龍頭獅身,吃人成性,十分兇悍?!?“是啊,路過此山都能聽見人...
    買驢閱讀 612評(píng)論 1 2

友情鏈接更多精彩內(nèi)容