LeetCode-Day65(C++) 605. 種花問題

605. 種花問題

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

給你一個整數(shù)數(shù)組 flowerbed 表示花壇,由若干 01 組成,其中 0 表示沒種植花,1 表示種植了花。另有一個數(shù) n,能否在不打破種植規(guī)則的情況下種入 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 * 10<sup>4</sup>
  • flowerbed[i]01
  • flowerbed 中不存在相鄰的兩朵花
  • 0 <= n <= flowerbed.length

題解
題目要求是否能在不打破規(guī)則的情況下插入n朵花,與直接計算不同,采用“跳格子”的解法只需遍歷不到一遍數(shù)組,處理以下兩種不同的情況即可:

【1】當(dāng)遍歷到index遇到1時,說明這個位置有花,那必然從index+2的位置才有可能種花,因此當(dāng)碰到1時直接跳過下一格。
【2】當(dāng)遍歷到index遇到0時,由于每次碰到1都是跳兩格,因此前一格必定是0,此時只需要判斷下一格是不是1即可得出index這一格能不能種花,如果能種則令n減一,然后這個位置就按照遇到1時處理,即跳兩格;如果index的后一格是1,說明這個位置不能種花且之后兩格也不可能種花(參照【1】),直接跳過3格。

當(dāng)n減為0時,說明可以種入n朵花,則可以直接退出遍歷返回true;如果遍歷結(jié)束n沒有減到0,說明最多種入的花的數(shù)量小于n,則返回false。

作者:hatsune-miku-k

class Solution {
public:
    bool canPlaceFlowers(vector<int>& flowerbed, int n) {
        for (int i = 0, len = flowerbed.size(); i < len && n > 0;) {
            if (flowerbed[i] == 1) {
                i += 2;
            } else {
                if(i == len - 1 || flowerbed[i + 1] == 0) {
                    n--;
                    i += 2;
                } else {
                    i += 3;
                }
            }
        }
        return n <= 0;
    } 
};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 605 Can Place Flowers 種花問題 Description:Suppose you have a...
    air_melt閱讀 254評論 1 0
  • 題目介紹 假設(shè)你有一個很長的花壇,一部分地塊種植了花,另一部分卻沒有。可是,花卉不能種植在相鄰的地塊上,它們會爭奪...
    leeehao閱讀 140評論 0 0
  • 題目描述 假設(shè)你有一個很長的花壇,一部分地塊種植了花,另一部分卻沒有??墒?,花卉不能種植在相鄰的地塊上,它們會爭奪...
    wanjh閱讀 349評論 0 0
  • 題目 假設(shè)你有一個很長的花壇,一部分地塊種植了花,另一部分卻沒有。可是,花卉不能種植在相鄰的地塊上,它們會爭奪水源...
    唐三斤閱讀 123評論 0 0
  • 題目 難度:★★☆☆☆類型:數(shù)組 假設(shè)你有一個很長的花壇,一部分地塊種植了花,另一部分卻沒有??墒?,花卉不能種植在...
    玖月晴閱讀 1,169評論 0 0

友情鏈接更多精彩內(nèi)容