前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >​LeetCode刷题实战605:种花问题

​LeetCode刷题实战605:种花问题

作者头像
程序员小猿
发布于 2022-06-07 07:11:31
发布于 2022-06-07 07:11:31
28600
代码可运行
举报
文章被收录于专栏:程序IT圈程序IT圈
运行总次数:0
代码可运行

算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !

今天和大家聊的问题叫做 种花问题,我们先来看题面:

https://leetcode.cn/problems/can-place-flowers/

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.

Given an integer array flowerbed containing 0's and 1's, where 0 means empty and 1 means not empty, and an integer n, return if n new flowers can be planted in the flowerbed without violating the no-adjacent-flowers rule.

假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。

给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?能则返回 true ,不能则返回 false。

示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
示例 1:

输入:flowerbed = [1,0,0,0,1], n = 1
输出:true
示例 2:

输入:flowerbed = [1,0,0,0,1], n = 2
输出:false

解题

1、贪心策略为:尽量能种更多的花,遍历数组,遇到0 0 0组合就可以种花,种花后成0 1 0;

2、0 0 0组合在数组边界存在特殊情况,这里我们用防御式编程思想,在flowerbed数组两端各添加一个0;

3、每种一朵花,就让n--,最后判断n是否小于等于0的真假就可以了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Solution {
public:
    bool canPlaceFlowers(vector<int>& flowerbed, int n) {
        int len =flowerbed.size();
        vector<int> v(len+2);
        v[0]=0; v[len+1]=0; //将首尾赋值为0;
        for(int i=0;i<len;i++){
            v[i+1]=flowerbed[i];
        }
        for(int i=1;i<len+1;i++){
            if(v[i]==0 && v[i-1]==0 && v[i+1]==0){
                n--;
                v[i]=1;
            }
        }
        return n<=0;
    }
};

上期推文:

LeetCode1-600题汇总,希望对你有点帮助!

LeetCode刷题实战601:体育馆的人流量

LeetCode刷题实战602:好友申请 II :谁有最多的好友

LeetCode刷题实战603:连续空余座位

LeetCode刷题实战604:迭代压缩字符串

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员小猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
LeetCode 605. 种花问题
假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。
Michael阿明
2020/07/13
3500
LeetCode 605. 种花问题
【算法千题案例】每日一练LeetCode打卡——110.种花问题
假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。
呆呆敲代码的小Y
2022/01/26
4020
【算法千题案例】每日一练LeetCode打卡——110.种花问题
种花问题
假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。
WindRunnerMax
2021/01/05
3560
605. 种花问题
贪心思想: 保证每次操作都是局部最优---->从而使得全局最优 假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。 给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?能则返回 true ,不能则返回 false。 示例 1: 输入:flowerbed = [1,0,0,0,1], n = 1 输出:
CaesarChang张旭
2021/06/10
2160
【数据结构和算法】种花问题
这是力扣的 605 题,难度为简单,解题方案有很多种,本文讲解我认为最奇妙的一种。
绿毛龟
2024/01/19
1190
leetcode-605-Can Place Flowers
题目描述: 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
chenjx85
2018/07/05
4930
【Leetcode -605.种花问题 -628.三个数的最大乘积】
题目:假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。
YoungMLet
2024/03/01
1200
LeetCode刷题——种花问题和斐波那契数
假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。
用户10234052
2022/12/02
2210
LeetCode 0605. 种花问题
假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。
Yano_nankai
2021/02/23
2230
LeetCode 0605. 种花问题
最大堆,DP问题-LeetCode 373 374 376 377 605(DP,最大堆)
给定两个以升序排列的整形数组 nums1 和 nums2, 以及一个整数 k。 定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2。 找到和最小的 k 对数字 (u1,v1), (u2,v2) … (uk,vk)。
算法工程师之路
2019/12/13
5480
leetcode:605 种花问题
题目讲解:有两个数,0代表没种植花,1代表种植花了。 花坛种植规则:两朵花之间不能相邻种植。必须隔开。用什么隔开?没花的。 为什么一定要隔开? 因为花会死去。 n代表什么? 代表能不能在这个花坛里面种植n朵花呢?
贵哥的编程之路
2020/10/28
2640
605. Can Place Flowers
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.
luozhiyun
2019/09/10
2950
LeetCode Weekly Contest 35解题思路
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014688145/article/details/72859739
用户1147447
2019/05/26
3620
JavaScript数据结构与算法-Array
例如:1 ^ 1 = 0 、 2 ^ 2 = 0、 0 ^ 1 = 1 、1 ^ 1 ^ 2 ^ 3 ^ 2 ^ 4 ^ 3 = 4
FinGet
2019/06/28
5940
Leetcode 605. Can Place Flowers
文章作者:Tyan 博客:noahsnail.com | CSDN | 简书
Tyan
2021/07/08
3320
【leetcode刷题】种花问题【605】
【leetcode刷题】种花问题【605】 一、题目 1.题目描述 二、解题报告 1.思路分析 2.代码详解 3.注意事项 一、题目 1.题目描述 二、解题报告 1.思路分析 2.代码详解 C++👇 class Solution { public: bool canPlaceFlowers(vector<int>& flowerbed, int n) { int count=0; if(flowerbed.size()>=2){ if
司六米希
2022/11/15
2020
【leetcode刷题】种花问题【605】
LeetCode周赛288,高难度酣畅淋漓的比赛
这场比赛是由Airwallex 空中云汇举办的,没记错这是一家总部在澳洲的公司,国内的分部在上海。
TechFlow-承志
2022/09/21
4910
LeetCode周赛288,高难度酣畅淋漓的比赛
LeetCode 1042. 不邻接植花(图的数据结构)
以数组形式返回选择的方案作为答案 answer,其中 answer[i] 为在第 (i+1) 个花园中种植的花的种类。花的种类用 1, 2, 3, 4 表示。保证存在答案。
Michael阿明
2020/07/13
4150
LeetCode 1042. 不邻接植花(图的数据结构)
杂七杂八的练习(3)
假设你有一个长的花坛,其中一些地块种植着花,另一些没有。 然而,花不能种植在相邻的地块否则他们会争取水导致两者都死亡。 给定一个花坛(表示为包含0和1的数组,其中0表示没有种花,1表示种植着花)以及数字n。如果n个新鲜花可以种植在其中则返回真,否则返回假。
ttony0
2022/12/26
3500
​LeetCode刷题实战79:单词搜索
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
程序员小猿
2021/01/20
5420
​LeetCode刷题实战79:单词搜索
相关推荐
LeetCode 605. 种花问题
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文