【Day21 中高難度算法挑戰(zhàn)】拆分斐波那契序列
介紹
總而言之是時候利用暑假鍛煉一下算法技術(shù),一提算法面試就面露難色的情形總不能一直持續(xù)下去。本欄目面向有一定基礎(chǔ)的編程愛好者,每天(如果up不鴿)分享并解析一道LeetCode中高難度題目(通常是hard)。有興趣的小伙伴可以一起跟著做并且討論解法。目前的教材是花花醬的Leetcode Problem List【1】.
適合人群:
有一定算法基礎(chǔ),但是還未能順利通過筆試/面試,總覺得算法題目想不明白的你。
不適合人群:
算法入門級選手(一上來就做難題可能并不合適,建議首先專注簡單/中等題目)
非常不適合人群:
算法競賽選手(這種小兒科的問題完全是在浪費您的時間)
過往題目在這里!

拆分斐波那契序列
題目看這里,leetcode第842題,middle難度:
https://leetcode.com/problems/split-array-into-fibonacci-sequence/
強烈建議讀者自己先做(不過真的會有讀者嗎,笑),有任何問題歡迎在評論區(qū)討論,up看到了會及時回復(fù)。做完了歡迎在評論區(qū)打卡~
解析
我們把到當前位置考慮的數(shù)都加入list中,如果當前能產(chǎn)生的數(shù)字是list里倒數(shù)第一和倒數(shù)第二元素的和,那么繼續(xù)。這里的陷阱之一是每個數(shù)字要小于2**31,我一開始沒仔細讀題,錯過了這個條件。

思考樂園
如果當前列表中的數(shù)字超過2個,且當前數(shù)字大于前兩個數(shù)字的和,結(jié)束循環(huán)。這樣做有什么道理?歡迎將答案寫在評論區(qū)~
音樂推薦
賽百味三明治買一送一看起來很劃算,但是實際上可能并不是這樣。今天的推薦是來自阿梓從小就很可愛的發(fā)如雪,大概很有名吧
教材鏈接
【1】https://zxi.mytechroad.com/blog/leetcode-problem-categories/