所有題目還是採用python進行解答的哦!
今天的題目相對來說比較簡單,也有很多種解決方法,我只是給出了一些方法,大家可以多多查查,希望一起交流學習。
def
forsolve
(n):
# for迴圈
s =1if n ==0:
return
1else
:for i in
range(1
,n+1):
s *= i
return s
空間複雜度會相對for更大,使用遞迴**更加簡單
def
recursive
(n):
# 遞迴想法
if n ==0:
return
1else
:return n * recurssive(n-
1)
python遞迴有上限!!! 小心使用
def
fibonacil1
(n):
# o(2^n)
assert
(n>=0)
if(n <=2)
:return
1else
:return fibonacil1(n-1)
+ fibonacil1(n-
2)
def
fibonacil2
(n):
# o(n)
assert
(n>=2)
a =1, b =
0for i in
range(1
,n+1):
a,b = b, a+b
return a
1
1 2 1
1 2 1 3 1 2 1
def
print_
(n):
# o(2^n)
assert
(n>=0)
if n ==1:
return
"1"else
:return print_(n-1)
+" "
+str
(n)+
" "+ print_(n-
1)
def
print_1
(n):
# o(n)
assert
(n>=0)
if n ==1:
return
"1" t = print_1(n-1)
return t +
" "+
str(n)
+" "
+ t
def
print_2
(n):
# o(n)
assert
(n>=0)
result =
""for i in
range(1
,n+1):
result = result +
str(i)
+" "
+ result
return result
判斷四種情況,相同,奇數,小於二倍,大於二倍
def
seq(a,b):if
(a == b)
:return
str(a)
if(b %2==
1):return
"("+ seq(a,b-1)
+" + 1)"
if(b <
2*a)
:return
"("+ seq(a,b-1)
+" + 1)"
return
(a,b/2)
+"* 2"
a =5;
b =23
;print
(str
(b)+
" = "
+ intseq(a, b)
)
每日一題 06
946.驗證棧序列 難度中等88收藏分享切換為英文關注反饋 給定pushed和popped兩個序列,每個序列中的值都不重複,只有當它們可能是在最初空棧上進行的推入 push 和彈出 pop 操作序列的結果時,返回true 否則,返回false。示例 1 輸入 pushed 1,2,3,4,5 pop...
每日一題 06
面試題46.把數字翻譯成字串 難度中等87收藏分享切換為英文關注反饋 給定乙個數字,我們按照如下規則把它翻譯為字串 0 翻譯成 a 1 翻譯成 b 11 翻譯成 l 25 翻譯成 z 乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。示例 1 輸入 12258輸...
每日程式設計題 03
所有題目實現都是採用python 在乙個m行n列的矩陣中,如果查詢到乙個元素為 0 將其所在的行和列的元素都設為 0 需要考慮乙個記錄矩陣,一般都會考慮m行n列的,但是可以行列分開考慮,這樣會減少空間複雜度,只需要 m n def myzero matrix m none len matrix n ...