微信小程序 reactjs search enums ide vue添加class android实战项目 android项目实例 php抽奖源码 java手机验证码 phpstorm插件 表白网页源码 python变量定义 python模块下载 javatrim java开发环境 java中的数据类型 java对象和类 java怎么安装 java目录 java对象序列化 java方法调用 java字符串相等 右键菜单背景 俄罗斯方块c语言代码 渐变事件 电脑基础 模拟人生2夜生活 pdf安装包官方下载 脚本大师 dnf卡邮件 php验证码 画图3d 字体模糊 音乐迷 杨辉三角python ofd文件阅读器 数组对象去重 filesaver afc2补丁
当前位置: 首页 > 学习教程  > 编程语言

【LeetCode605】-种花问题

2021/2/13 18:31:16 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

方法一 实现思路 就是尽量靠最左边或靠最优边种花&#xff0c;如果不可行尽量在前面只隔一个种花 实现代码 class Solution { public:bool canPlaceFlowers(vector<int>& flowerbed, int n) {if(flowerbed.size()1&&!flowerbed[0]&&n<1) retu…

方法一

实现思路

就是尽量靠最左边或靠最优边种花,如果不可行尽量在前面只隔一个种花

实现代码

class Solution {
public:
    bool canPlaceFlowers(vector<int>& flowerbed, int n) {
        if(flowerbed.size()==1&&!flowerbed[0]&&n<=1) return true;
        for(int i=1;i<flowerbed.size();i++){
            if(n==0) break;
            if(!flowerbed[i-1]&&!flowerbed[i]){
                if(i==flowerbed.size()-1||i==1)
                {
                    int index=i;
                    if(i==1) index=index-1;
                    flowerbed[index]=1;
                    n--;
                }
                else if(!flowerbed[i+1]){
                    flowerbed[i]=1;
                    n--;
                }
                
            }
            
        }
        return !n;
    }
};

提交结果及分析

在这里插入图片描述
时间复杂度O(n)

方法二

实现思路

为了方便统一化处理,可以在头添加一个0,尾添加一个0,那样就可以实现判断一个元素左右两边及自己都为0,就可以在自己的位置种花
从左到右遍历,能种就种


本文链接: http://www.dtmao.cc/news_show_700258.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?