LeetCode 605. Can Place Flowers
来源:互联网 发布:淘宝刷qq空间访问量 编辑:程序博客网 时间:2024/06/05 02:51
问题描述
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.
Example 1:
Input: flowerbed = [1,0,0,0,1], n = 1
Output: True
Example 2:
Input: flowerbed = [1,0,0,0,1], n = 2
Output: False
Note:
- The input array won’t violate no-adjacent-flowers rule.
- The input array size is in the range of [1, 20000].
- n is a non-negative integer which won’t exceed the input array size.
问题分析
给定一个数组nums[],数组中有一些0,1.其中0,表示空,1表示非空。给定一个数n,表示n给1,将这n个1插入到nums中,要求相邻两个不能是1.返回结果表示成功与否。
遍历这个数组,满足条件,计数+1.同时跳两位,如果不满足,就跳一位。时间复杂度 O(n).
代码实现
public boolean canPlaceFlowers(int[] flowerbed, int n) { if (n == 0) { return true; } if (flowerbed.length < (2 * n - 1)) { return false; } int i = 0; int count = 0; while (i < flowerbed.length) { if (flowerbed[i] == 0 && (i == 0 || flowerbed[i - 1] == 0) && (i == flowerbed.length - 1 || flowerbed[i + 1] == 0)) { flowerbed[i] = 0; count++; i++; } if (count >= n) { return true; } i++; } return false; }
总结
在思考的时候,尽可能使用统一 的循环,而不用对其中不同的情况进行列举,那样容易出错。
- [leetcode]605. Can Place Flowers
- [LeetCode]605. Can Place Flowers
- [LeetCode]605. Can Place Flowers
- LeetCode 605.Can Place Flowers
- [leetcode]: 605. Can Place Flowers
- [LeetCode] 605. Can Place Flowers
- LeetCode: 605. Can Place Flowers
- leetcode 605. Can Place Flowers
- LeetCode 605. Can Place Flowers
- LeetCode 605. Can Place Flowers
- LeetCode-605. Can Place Flowers
- leetcode 605. Can Place Flowers
- leetcode[Can Place Flowers]
- leetcode-Can Place Flowers
- leetCode-Can Place Flowers
- LeetCode Can Place Flowers
- 605. Can Place Flowers
- 605. Can Place Flowers
- LSTM解读
- Laravel导出大量数据到表格csv及长数字显示不全问题
- 我的第八篇博客
- linux(二)之linux常用命令一
- css中的小技巧
- LeetCode 605. Can Place Flowers
- BZOJ 2588 Spoj 10628 Count on a tree
- linux软件安装之详解apt、yum、dnf 和 pkg包安装
- 简单排序Java实现(二):归并排序,快速排序
- 页面显示非webapp下的图片等资源
- 分别使用hexo,jekyll在GitHub上搭建博客
- Linux文件---文件锁
- Hbase安装及参数说明
- Dummary、Fake、Stub、Spy、Mock介绍