605 種花問題

2021-10-02 11:54:25 字數 801 閱讀 3301

解題思路:

解決本題需考慮以下三種情況

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...