給定乙個由0和1組成的陣列表示花壇,其中0表示沒種花,1表示植了花。要再向花壇中種n朵花,要求:相鄰花壇不能同時種花。能否在不打破種植規則的情況下種入 n 朵花。
錯誤解答
class
solution
(object)
: def canplaceflowers
(self, flowerbed, n)
:"""
:type flowerbed: list[int]
:type n: int
:rtype: bool
"""count =
0for i in
range(0
,len
(flowerbed)):
if flowerbed[i]==0
: count +=
1if flowerbed[i]
==1 and count>2:
count = count -
2if count==1:
max_num =
1else
: max_num =
round
(count/2)
n = n - max_num
if n >0:
return false
if n<=0:
return true
沒有考慮到全為0的情況
錯誤解答
class
solution
(object)
: def canplaceflowers
(self, flowerbed, n)
:"""
:type flowerbed: list[int]
:type n: int
:rtype: bool
"""count =
0for i in
range(0
,len
(flowerbed)):
if flowerbed[i]==0
: count +=
1if flowerbed[i]
==1 and count>2:
count = count -
2if count==1:
max_num =
1else
: max_num =
round
(count/2)
n = n - max_num
# 全為0的情況
if count>2:
count = count -
2if count==1:
max_num =
1else
: max_num =
round
(count/2)
n = n - max_num
if n >0:
return false
else
:return true
遇到1以後沒有對count進行更新,如[1,0,1,0,1,0]的情況,迴圈結束後count為3
錯誤解答
class
solution
(object)
: def canplaceflowers
(self, flowerbed, n)
:"""
:type flowerbed: list[int]
:type n: int
:rtype: bool
"""count =
0 block = count
for i in
range(0
,len
(flowerbed)):
if flowerbed[i]==0
: count +=
1if flowerbed[i]==1
: block = count
count =
0if block>2:
block = block -
2if block==1:
max_num =
1else
: max_num =
round
(block/2)
n = n - max_num
if count==1:
return false
if count>2:
block = count
block = block -
2if block==1:
max_num =
1else
: max_num =
round
(block/2)
n = n - max_num
if n >0:
return false
if n <=0:
return true
測試用例[1,0,0,0,0,0,1] 2
我用spyder執行時輸出結果是true,但是力扣上執行輸出結果是false,原因未知。
原因找到了:列表內元素型別為int整型,block/2只取整數部分。
沒有考慮到一開始就為0的情況,如[0,0,1],1
力扣 605 種花問題
假設你有乙個很長的花壇,一部分地塊種植了花,另一部分卻沒有。可是,花卉不能種植在相鄰的地塊上,它們會爭奪水源,兩者都會死去。給定乙個花壇 表示為乙個陣列包含0和1,其中0表示沒種植花,1表示種植了花 和乙個數 n 能否在不打破種植規則的情況下種入 n 朵花?能則返回true,不能則返回false。示...
力扣605 種花問題
題目鏈結 題目不是難題,但是需要注意一些細節 如下 思路 即每次可以種花的位置為初始為0,or末尾為0,or臨近點為0的位置 即每次可以種花的位置為初始為0,or末尾為0,or臨近點為0的位置 class solution i return count n 根據題意很容易寫出上述的 直觀且簡潔,但我...
(力扣)第605 種花問題
題目要求 假設有乙個很長的花壇,一部分地塊種植了花,另一部分卻沒有。可是,花不能種植在相鄰的地塊上,它們會爭奪水源,兩者都會死去。給你乙個整數陣列 flowerbed 表示花壇,由若干 0 和 1 組成,其中 0 表示沒種植花,1 表示種植了花。另有乙個數 n 能否在不打破種植規則的情況下種入 n ...