605 種花問題 C LeetCode

2021-10-13 18:58:39 字數 901 閱讀 2898

605. 種花問題

假設有乙個很長的花壇,一部分地塊種植了花,另一部分卻沒有。可是,花不能種植在相鄰的地塊上,它們會爭奪水源,兩者都會死去。

給你乙個整數陣列  flowerbed 表示花壇,由若干 0 和 1 組成,其中 0 表示沒種植花,1 表示種植了花。另有乙個數 n ,能否在不打破種植規則的情況下種入 n 朵花?能則返回 true ,不能則返回 false。

示例 1:

輸入:flowerbed = [1,0,0,0,1], n = 1

輸出:true

示例 2:

輸入:flowerbed = [1,0,0,0,1], n = 2

輸出:false

1 <= flowerbed.length <= 2 * 104

flowerbed[i] 為 0 或 1

flowerbed 中不存在相鄰的兩朵花

0 <= n <= flowerbed.length

**

class solution 

}return n <= res;

}};

知識點總結:

1、vector可以任意插入值,插入首末值方法如下

flowerbed.insert(flowerbed.begin(), 0);

flowerbed.insert(flowerbed.end(), 0);

2、求vector長度vec.size()

經驗總結

1、寫**要考慮許多測試場景,然後分情況解決:如題目中n=0時,陣列長度為0時;

2、考慮特殊場景普通化:題目中只要滿足連續三個為0,中間就可以種花,但是第乙個和最後乙個例外,所以在第乙個和最後乙個前後分別新增0可以使得這種場景普通化,方便寫**時不用分很多場景

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 種花問題

解題思路 解決本題需考慮以下三種情況 1.第一種情況 n 0,直接返回true 2.第二種情況 陣列中的元素全是0。在不打破種植規則的情況下種入n朵花,至少需要 2 n 1 個連續0,所以只要陣列長度 2 n 1就返回true,否則返回false 3.第三種情況 n 0且陣列中有1又有0。此時又需要...