解題思路:
解決本題需考慮以下三種情況
1.第一種情況:n==0,直接返回true
2. 第二種情況:陣列中的元素全是0。在不打破種植規則的情況下種入n朵花,至少需要(2*n-1)個連續0,所以只要陣列長度》=2*n-1就返回true,否則返回false
3.第三種情況:n>0且陣列中有1又有0。此時又需要考慮三種情形:
1)最左邊有0時,在不打破種植規則的情況下種入n朵花,至少需要(2*n)個連續0
2)最右邊有0時,在不打破種植規則的情況下種入n朵花,至少需要(2*n)個連續0
3)非最左邊和最右邊有0時,在不打破種植規則的情況下種入n朵花,至少需要(2*n+1)個連續0
**實現:
class solution
//2.第二種情況:n>0且陣列中有1又有0
int len=flowerbed.length;
//cnt:表示連續0的個數
int cnt=0;
int index1=-1;//上乙個1的下標
boolean flag=false;//左邊第乙個1
for(int i=0;ielse
if(n<=0)}}
//3.陣列中的元素全是0
if(index1==-1)
return false;
}if(index1}
return false;
}}
605 種花問題
給定乙個花壇 表示為乙個陣列包含0和1,其中0表示沒種植花,1表示種植了花 和乙個數 n 能否在不打破種植規則的情況下種入 n 朵花?能則返回true,不能則返回false。示例 1 輸入 flowerbed 1,0,0,0,1 n 1 輸出 true示例 2 輸入 flowerbed 1,0,0,...
605 種花問題
假設你有乙個很長的花壇,一部分地塊種植了花,另一部分卻沒有。可是,花卉不能種植在相鄰的地塊上,它們會爭奪水源,兩者都會死去。給定乙個花壇 表示為乙個陣列包含0和1,其中0表示沒種植花,1表示種植了花 和乙個數 n 能否在不打破種植規則的情況下種入 n 朵花?能則返回true,不能則返回false。示...
605 種花問題
題目描述 假設你有乙個很長的花壇,一部分地塊種植了花,另一部分卻沒有。可是,花卉不能種植在相鄰的地塊上,它們會爭奪水源,兩者都會死去。給定乙個花壇 表示為乙個陣列包含0和1,其中0表示沒種植花,1表示種植了花 和乙個數 n 能否在不打破種植規則的情況下種入 n 朵花?能則返回true,不能則返回fa...