leetcode-贪心-605. 种花问题
时间:2021-08-09
本文章向大家介绍leetcode-贪心-605. 种花问题,主要包括leetcode-贪心-605. 种花问题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
class Solution { public: bool canPlaceFlowers(vector<int>& flowerbed, int n) { int count = 0; int len = flowerbed.size(); // 针对长度为0的情况 if(len==0) return false; // 针对长度为1的情况 if(len==1){ if(flowerbed[0]==0){ if(n<=1) return true; else return false; } else{ if(n==1) return false; else return true; } } for(int i = 0; i < len; i++){ // i==0 判断起始情况 if(i==0){ if(flowerbed[i]==1) continue; else if(flowerbed[i+1]==0){ count++; flowerbed[i] = 1; } // i==len-1 判断末尾情况情况 }else if(i==len-1){ if(flowerbed[i] == 1) continue; else if(flowerbed[i-1]==0){ flowerbed[i] = 1; count++; } // 中间情况 }else{ if(flowerbed[i]==1) // 当前等于1直接跳过 continue; else if(flowerbed[i-1]==0&&flowerbed[i+1]==0){ // 判断两边是否为0 flowerbed[i]=1; count++; } } // if(flowerbed[i]==1) // continue; // else if(i==0) } if(count >= n) // 题目要求种植的树木之只要小于n都是可以的 return true; else return false; } };
进阶版
class Solution { public: bool canPlaceFlowers(vector<int>& flowerbed, int n) { vector<int> res; // 就是在上一次的基础上,在首尾添加了一个0,避免了边界判断 res.push_back(0); for(int i = 0; i < flowerbed.size(); i++){ res.push_back(flowerbed[i]); } res.push_back(0); int len = res.size(); int count = 0; for(int i = 1; i < len-1; i++){ if(res[i]==1) // 提高速度 continue; if(res[i]==0&&res[i-1]==0&&res[i+1]==0){ // 判断两边是否为0 res[i]=1; count++; } } if(count >= n) // 题目要求种植的树木之只要小于n都是可以的 return true; else return false; } };
原文地址:https://www.cnblogs.com/ymec/p/15118651.html
- @ControllerAdvice + @ExceptionHandler 处理 全部Controller层异常
- 动态增加表单元素并获取元素的text和value提交
- SpringBoot常用配置
- Json格式String类型字符串转为Map工具类
- spring boot thymeleaf常用方式
- Java工具类- 跨域工具类
- python语言中的AOP利器:装饰器
- 如何使用supervisor管理你的应用
- Manjaro安装配置
- [Golang软件推荐] Frp内网穿透
- [Golang软件推荐] Golang通用连接池
- RxJS -- Subscription
- ASP.Net Core项目在Mac上使用Entity Framework Core 2.0进行迁移可能会遇到的一个问题.
- RxJS速成 (下)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Mongodb分页查询优化上
- 2.进程控制
- 2-1.死锁-经典同步问题
- 2-2.进程通信-多线程
- 微服务[学成在线] day17:基于Zuul网关实现路由转发、过滤器
- Delta Lake 学习笔记(一)
- Delta Lake 学习笔记(二)
- Delta Lake 学习笔记(三)
- 4.IP地址与子网划分
- 08-软考的法律条文
- Intellij IDEA必备插件,提高效率的“七种武器”!
- Mongodb分页查询优化下
- MySQL 案例:大表改列的新技巧(Generated Column)
- Spark 2.2 on K8S Dynamic Resource Allocation
- Java中异常处理的9个最佳实践