0%

can-place-flowers

Add Binary – LeetCode 67

Problem

Description

Suppose you have a long flowerbed in which some of the plots are planted and some are not. However, flowers cannot be planted in adjacent plots - they would compete for water and both would die.

Given a flowerbed (represented as an array containing 0 and 1, where 0 means empty and 1 means not empty), and a number n, return if n new flowers can be planted in it without violating the no-adjacent-flowers rule.

Answer

Original

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
public:
bool canPlaceFlowers(vector<int>& flowerbed, int n) {
int cnt = 0;
for(int i = 0; i != flowerbed.size();++i){
if(flowerbed[i] == 0 && (i == 0 || flowerbed[i-1] == 0) && (i == flowerbed.size() - 1 || flowerbed[i+1] == 0)){
flowerbed[i] = 1;
++cnt;
}
if(cnt >= n)
return true;
}
return false;
}
};

思路

简单的空间判断。时间复杂度$O(n)$,空间复杂度$O(1)$。
耗时$12$ ms,排名$2.34\%$

Better

思路

还没看到更好的思路