605. 种花问题
链接
假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?能则返回 true ,不能则返回 false 。
示例 1:
输入:flowerbed = [1,0,0,0,1], n = 1
输出:true
示例 2:
输入:flowerbed = [1,0,0,0,1], n = 2
输出:false
提示:
1 <= flowerbed.length <= 2 * 104
flowerbed[i] 为 0 或 1
flowerbed 中不存在相邻的两朵花
0 <= n <= flowerbed.length
1.暴力求解
从数组的首个元素开始判断是否种花,判断当前位置的前后位置是否种花,要注意数组越界问题和首地址和尾地址位置问题。
bool canPlaceFlowers(int* flowerbed, int flowerbedSize, int n){int i=0;if(n==0){return true;}if(flowerbedSize==1){if(flowerbed[i]==0){flowerbed[i]==1;n--;i++;}}while(i<flowerbedSize){if(i==0){if(flowerbed[0]==0&&flowerbed[1]==0){flowerbed[i]==1;n--;i+=2;}else{i+=2;}}else if(i==flowerbedSize-1){if(flowerbed[i]==0&&flowerbed[i-1]==0){flowerbed[i]=1;n--;}else{i++;}} else if(flowerbed[i]==1){i+=2;}else if(flowerbed[i]==0&&i>0&&flowerbed[i-1]==0&&flowerbed[i+1]==0&&i+1<flowerbedSize){flowerbed[i]==1;n--;i+=2;}else if(flowerbed[i+1]==1&&i+1<flowerbedSize){i+=3;}else{i+=2;}}if(n<=0){return true;}else{return false;}
}
2.暴力优化
可以优化下知道在什么情况下可以种花,当不处于临界位置的时候,如果当前位置的值为0,前面一个位置和后面一个位置的值都为0,就可以种花,当第一个位置和第二个位置的值或者最后一个位置的值和前一个位置的值为0的时候也可以种花。要注意数组越界的问题。
bool canPlaceFlowers(int* flowerbed, int flowerbedSize, int n){ for(int i=0;i<flowerbedSize;i++){// printf("i=%d\n",i);if(flowerbed[i]==0&&(i==0||flowerbed[i-1]==0)&&(((i+1<flowerbedSize)&&(flowerbed[i+1]==0))||i==flowerbedSize-1)){flowerbed[i]=1;n--;}}return n<=0;
}
0求解法
长度为1且值为0,直接种植,如果元素不全为0统计0的个数如果连续三个1就可以种一个,如果全为0,如果长度为2,只能种一个,否则就是0的个数除以2加1
bool canPlaceFlowers(int* flowerbed, int flowerbedSize, int n){ int count=0,i,sum=0,flage=0;if(flowerbedSize==1){if(flowerbed[0]==0){return true;}}if(flowerbed[0]==0){count++;}for(i=0;i<flowerbedSize;i++){if(flowerbed[i]==0){count++;}else if(count>=2){flage=1;sum+=(count-1)/2;count=0;}else if(count<2){count=0;flage=1;}}if(count>=2){if(flage==0){if(count==2){sum-=1;}else{sum+=count/2;}}else{if(count==2){sum+=1;}else{if(count%2==0){sum+=count/2;}else{sum+=(count-1)/2;}}}}if(sum>=n){return true;}else{return false;}
}
相关文章:
605. 种花问题
链接 假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中…...
Elasticsearch 常见的简单查询
查看es中有哪些索引 请求方式:GET 请求地址:http://localhost:9200 /_cat/indices?v 参数:无 结果: 查看索引全部数据 请求方式:GET 请求地址:http://localhost:9200/index-2023-08/_search 参数&a…...
C#使用xamarin进行跨平台开发
使用 Xamarin 进行跨平台开发可以使用 C# 和 .NET 平台来开发移动应用程序,同时将代码在多个主要移动操作系统上运行,包括 Android 和 iOS。以下是在 C# 中使用 Xamarin 进行跨平台开发的一般步骤: 安装 Xamarin: 在开始之前&…...
xargs 的用法 在1个文件夹中批量删除文件,这些删除的文件名是另一个文件夹中的文件名。
xargs 的用法 在1个文件夹中批量删除文件,这些删除的文件名是另一个文件夹中的文件名。 1、问题背景 应用场景 1、问题背景 应用场景 在二进制部署docker时,会把docker的所有可执行文件复制到/usr/bin下。 如果说复制过去后,想要反悔&#x…...
集简云本周新增/更新:新增2大功能,集成2款应用,更新4款应用,新增近20个动作
本周更新概要 新增功能 新增功能:Claude2 新增功能:语聚AI对话助手对话背景设定 应用新增 新增应用:领星ERP 新增应用:slack(自建) 应用更新 更新应用:企业微信(代开发) 更新应用:阿里云效2020(新版…...
MySQL存储过程怎么写?看完这篇秒懂
今天测试一个数据展示模块,依赖于数据部推送数据,但是他们没有人员配合,为了赶工,于是自己徒手造数据,有些页面,要查看翻页和权限等相关的功能,手动造是不可能的,因为我懒....哈哈哈…...
STM32电源名词解释
STM32电源架构 常用名词 VCC Ccircuit 表示电路,即接入电路的电压。 VDD Ddevice 表示器件, 即器件内部的工作电压。 VSS Sseries 表示公共连接,通常指电路公共接地端电压。 VDDA Aanalog 表示模拟,是模拟电路部分的电源。主要为…...
《操作系统真象还原》学习笔记:第七章 中断
由于 CPU 获知了计算机中发生的某些事,CPU 暂停正在执行的程序,转而去执行处理该事件的程序,当这段程序执行完毕后,CPU 继续执行刚才的程序。整个过程称为中断处理,也称为中断。 把中断按事件来源分类,来自…...
【学习笔记之vue】These dependencies were not found:
These dependencies were not found:方案一 全部安装一遍 我们先浅试一个axios >> npm install axios 安装完报错就没有axios了,验证咱们的想法没有问题,实行! ok...
【数据结构】实现栈和队列
目录 一、栈1.栈的概念及结构(1)栈的概念(2)栈的结构 2.栈的实现(1)类型和函数的声明(2)初始化栈(3)销毁(4)入栈(5&#x…...
APT60DQ20BG-ASEMI新能源功率器件APT60DQ20BG
编辑:ll APT60DQ20BG-ASEMI新能源功率器件APT60DQ20BG 型号:APT60DQ20BG 品牌:ASEMI 封装:TO-3P 恢复时间:>50ns 正向电流:60A 反向耐压:200V 芯片个数:2 引脚数…...
[Android Framework] 系统 ANR 问题排查实践小结
文章目录 背景卡顿的定义:卡顿分类:卡顿原因汇总ANR 出现的原理应用层导致ANR系统导致ANR日志抓取traces.txt 是如何生成的分析思路与验证相关日志分析data/anr/traces.txt其他分析思路如何分析生成的 trace.html 文件呢?最后解决参考:背景 本文记录了工作中遇到的Andorid …...
【Unity】Text文本组件的一些操作
Unity的Text组件的几种常见的操作方法 Text组件是Unity中用于在UI界面上显示文本的组件。它包含了一些常见的属性和方法,可以用来控制文本的内容、外观和交互。以下是一些常见的Text组件的操作: 设置文本内容:通过直接在Unity编辑器中的Text…...
如何通过tomcat下载映射下载文件
1.1找到tomcat服务器中server.xml文件 !--doBase是静态资源路径位置, path作用相当于设置的key, doBase作用相当于value --> <Context path"/download" docBase"E:\testBackData"></Context>1.2 找到tomcat服务器中web.xml文…...
Redis的8种数据结构和应用场景介绍,面试题答案
面试原题:你用过Redis哪些数据结构?(网易一面 2023)(面试题来自牛客网) 参考答案 后面有 详细答案解析,帮助更快记忆~ 参考答案共652字符,阅读约需1分8秒;全文共8694字符,阅读约需…...
Log4Qt日志框架(1)- 引入到QT中
Log4Qt日志框架(1)- 引入到QT中 1 下载源码2 简介3 加入到自己的项目中3.1 使用库文件3.2 引入源文件 4 说明 1 下载源码 github:https://github.com/MEONMedical/Log4Qt 官方(版本较老):https://sourceforge.net/projects/log4q…...
【算法刷题之哈希表篇(1)】
目录 1.哈希表基础理论2.leetcode-242. 有效的字母异位词(1)方法一:排序(2)方法二:哈希表 3.leetcode-349. 两个数组的交集(1)方法一:哈希表(2)方…...
uni-app 打包生成签名Sha1
Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份。 可以使用JRE环境中的keytool命令生成。以下是windows平台生成证书的方法: 安装JRE环境(推荐使用JRE8环境&am…...
【Django】Django创建一个文件下载服务
当使用Django创建一个下载服务时,您可以设置一个视图来处理文件下载请求,并根据您的需求提供文件下载链接。以下是一个简单的示例,演示如何在Django中实现基本的文件下载服务: 创建Django项目和应用: 首先,…...
Navicat for Mysql 显示 emoji 表情符号乱码问题 — 其它乱码情况都可参考
系统环境: 操作系统:MAC OS 10.11.6 MySQL:Server version: 5.6.21 MySQL Community Server (GPL) Navicat for MySQL: version 9.3.1 - standard 1、问题发现 在客户端执行用户注册,用户名包括 emoji 表情符号,注册完…...
《数字图像处理-OpenCV/Python》连载(2)目录
《数字图像处理-OpenCV/Python》连载(2)目录 本书京东优惠购书链接:https://item.jd.com/14098452.html 本书CSDN独家连载专栏:https://blog.csdn.net/youcans/category_12418787.html 第一部分 OpenCV-Python的基本操作 第1章 …...
Go学习-Day4
文章目录 Go学习-Day4函数值传递,引用传递常用的函数 异常处理数组Slice切片 Go学习-Day4 个人博客:CSDN博客 函数 值传递,引用传递 值传递直接拷贝值,一般是基本数据类型,数组,结构体也是引用传递传递…...
将el-dialog封装成函数调用
1、 使用Vue实例化方法 // MyDialog.js import Vue from vue export const openFormDialog function ({ props {}, events {} }) {const vm new Vue({data () {return {form: {}}},render () {return (<el-dialogvisible{true}{...{ props }}{...{ on: events }}onClos…...
Windows10批处理命令行设置环境变量笔记,无需重新安装python与chrome
近期,工作中经常安装、部署python生产、开发环境,比较麻烦,也没有心情去优化。突然,我的电脑崩溃了,在重新安装电脑的过程中,保留了原来的安装软件(有的没有放在系统盘中)࿰…...
统计学补充概念07-比较树
概念 在层次聚类中,聚类结果可以以树状结构表示,通常称为树状图(Dendrogram)。树状图展示了数据点如何被合并或分裂以形成聚类的层次结构。通过观察树状图,可以更直观地理解数据点之间的相似性和关系。 在比较树状图…...
设计原则 --《设计模式之美》总结篇
本文是阅读《设计模式之美》的总结和心得,跳过了书中对面试和工作用处不大或不多的知识点,总结总共分为三章,分别是面对对象编程范式、设计原则和设计模式。 设计模式是代码设计时的一些经验总结。相比于设计模式,设计原则更抽象。…...
Day16-蜗牛影城后端开发
蜗牛影城后端开发 一 多表关联查询 电影集合movie的type(类别)字段关联到电影类别movieType表的_id(主键) 二 蜗牛影城后端开发 1 数据的导入导出 2 用户模块 UserModel.js //导入mongoose,并解构出Schema(类)和model(对象) const {Schema,model} =...
axios / fetch 实现 stream 流式请求
axios 是一个支持node端和浏览器端的易用、简洁且高效的http库。本文主要介绍 axios 如何实现 stream 流式请求,注意这里需要区分 node 环境和浏览器环境。 一、node端 代码演示: const axios require(axios);axios({method: get,url: http://tiven.c…...
Pytorch学习:torchvison.transforms常用包(ToTensor、Resize、Compose和RandomCrop)
torchvision.transforms常用包 1. torchvision.transforms.ToTensor2. torchvision.transforms.Resize3. torchvision.transforms.Compose4. torchvision.transforms.Normalize5. torchvision.transforms.RandomCrop 1. torchvision.transforms.ToTensor 将PIL Image或ndarray…...
算法通关村十二关 | 字符串转换
1. 转换小写字母 LeetCode709:给你一个字符串s,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。 每个字母都是有确定的ASCII的,可以根据码表操作子字符串,常见的ASCII范围是: a-z: 97-122, …...
做兼职什么网站好/壹起航网络推广的目标
假设个人所得税为:税率 * (工资 - 1600)。请编写程序计算应缴的所得税,其中税率定义为: 当工资不超过1600时,税率为0;当工资在区间(1600, 2500]时,税率为5%;当工资在区间(2500, 3500]时…...
本地用织梦做网站/云南网站建设百度
点击可进入码云下载 geojson全国各省市区地图json数据...
wordpress 页面 分类目录/长沙营销型网站建设
JWNL是用JAVA语言编写的用于读取WordNet词典库的组件库。此次采用JWNL1.4-RC2,最高支持WordNet2.1(WINDOWS),3.0(UNIX)。1. 配置WordNet词典库。配置文件位置:..\jwnl14-rc2\config\file_properties.xml中的D:\Programs\WordNet\2.1\dict&quo…...
自己做局域网站/crm管理系统
一,栈 我们直到 栈的特点是先进后出,我们基于数组形式写一个简单的栈便于你们理解 下边是代码 直接辅助测试就可以 里边有测试结果 package com.jxd.test;public class JxdStack {private String item[];//数组用于存放数据private int length;//数组…...
欧美做同志网站空间/网络营销网站推广方案
花了我一天的时间找错误 网上一查,竟是 查看DBPROPSET_DBINIT属性:DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO表示意思:“true 或 false表示数据库对象坚持需要加密形式的敏感认证信息如密码和其他加密信息”。但是我们将之设置为true和false都…...
服装销售网站设计与制作/百度账号注册申请
这篇文章主要介绍了详解Axios 如何取消已发送的请求,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 前言 最近在项目中遇到一个问题,在连续发送同一请求时,如果第二次请求比第一次请求…...