bool canPlaceFlowers(int* arr, int len, int n){
int i;
for(i=0; i<len; i++){
if(arr[i])
continue;
/* 当前位置不在边缘 */
if(i>=1 && i<len-1 && arr[i-1]==0 && arr[i+1] ==0){
arr[i] = 1;
n--;
}else {
/* 当前位置在左边,要么右边有为0,或者右边没有 */
if(i==0 && ((i+1<len && arr[i+1] == 0) || (i+1>=len))){
arr[i] = 1;
n--;
}else if(i==len-1 && ((i-1>=0 && arr[i-1] == 0) || i-1<0)){/* 当前位置在右边,要么左边有为0,或者左边没有 */
arr[i] = 1;
n--;
}
}
}
//print_arr(arr, len);
return n<=0 ? true: false;
}
LeetCode-605-种花问题-C语言
最新推荐文章于 2022-01-29 21:50:58 发布