劍指offer刷題日記 01 斐波那契

2021-10-25 21:36:42 字數 900 閱讀 3192

# -*- coding:utf-8 -*-

class

solution

:def

fibonacci

(self, n)

:# write code here

if n ==0:

return

0if n ==1:

return

1if n<=0:

return

none

else

: a =

0 b =

1 c =

0for i in

range(0

,n-1):

c = b

b = a + b

a = c

return b

遇到並解決的問題:

for語句中,最初沒有引入變數 c。

只寫作 b = a + b

a = b

忘記當b變化時,a也不再是原來那個b。

因此需要引入乙個新的變數c,在b被改變之前,來儲存原有的b。

寫作:c = b

b = a + b

a = c

另外需要注意:

最後返回的是b

重拾python語法:

1.if 後面 不用加括號,但最後要加冒號

if n==0 :

2.返回空值的寫法:

return none

3.for range語句:

迴圈n次:for i in range(0,n)

#i=0,1,2,3,……n-1,一共正好是n次。

劍指offer刷題 斐波那契數列

題目一 寫乙個函式,輸入n,求斐波那契數列的第n項。對於題目一,接觸過遞迴人可能首先想到的就是通過遞迴的方法解決問題,例如計算第10項的斐波那契數列首先來看一下遞迴解決問題的思路,主要如下圖所示 我們可以發現,採用這種方式,做了很多的重複工作,例如f 8 就計算了兩次,第n是乙個非常大的數時,這耗費...

劍指offer刷題日記 鍊錶

鍊錶03 從尾到頭列印鍊錶 python 採用insert方法 class solution def printlist self,listnode if not listnode return result while listnode result.insert 0 listnode.val l...

劍指offer刷題day01

題目 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。分析1 二維陣列的含義 a 3,4 為3行4列的陣列,想要判斷是否存在該整數,暴力法是一定可以成功的,我...