【LeetCode每日一题】——605.种花问题

news2024/11/19 9:38:28

文章目录

  • 一【题目类别】
  • 二【题目难度】
  • 三【题目编号】
  • 四【题目描述】
  • 五【题目示例】
  • 六【解题思路】
  • 七【题目提示】
  • 八【时间频度】
  • 九【代码实现】
  • 十【提交结果】

一【题目类别】

  • 贪心算法

二【题目难度】

  • 简单

三【题目编号】

  • 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

六【解题思路】

  • 利用贪心算法的思想:能种则种
  • 种花的条件是当前位置为0,当前位置的前一个位置为0,当前位置的后一个位置为0,如果满足这个条件,那么就给当前位置种花,标记为1,并且记录个数,这就是贪心算法的思想,如果可以满足要求,我们就留下它
  • 还需要注意边界问题,要特殊判断数组的第一个位置和最后一个位置,具体可以看代码,注意要按照我写的顺序写,否则会发生数组越界的情况,因为要先判断是否是边界,再判断是不是零才不会发生数组越界的情况
  • 最后如果可以种的花,也就是我们判断之后可以种花的位置的个数超过题目要求的种花的个数,就返回true,否则返回false

七【题目提示】

  • 1 < = f l o w e r b e d . l e n g t h < = 2 ∗ 1 0 4 1 <= flowerbed.length <= 2 * 10^4 1<=flowerbed.length<=2104
  • f l o w e r b e d [ i ] 为 0 或 1 flowerbed[i] 为 0 或 1 flowerbed[i]01
  • f l o w e r b e d 中不存在相邻的两朵花 flowerbed 中不存在相邻的两朵花 flowerbed中不存在相邻的两朵花
  • 0 < = n < = f l o w e r b e d . l e n g t h 0 <= n <= flowerbed.length 0<=n<=flowerbed.length

八【时间频度】

  • 时间复杂度: O ( n ) O(n) O(n),其中 n n n为数组长度
  • 空间复杂度: O ( 1 ) O(1) O(1)

九【代码实现】

  1. Java语言版
class Solution {
    public boolean canPlaceFlowers(int[] flowerbed, int n) {
        int res = 0;
        for(int i = 0;i<flowerbed.length;i++){
            if(flowerbed[i] == 0 && ((i + 1) == flowerbed.length || flowerbed[i + 1] == 0) && (i == 0 || flowerbed[i - 1] == 0)){
                flowerbed[i] = 1;
                res++;
            }
        }
        return res >= n;
    }
}
  1. C语言版
bool canPlaceFlowers(int* flowerbed, int flowerbedSize, int n){           
    int res = 0;                                      
    for(int i=0; i < flowerbedSize; i++)
    {                                         
        if(flowerbed[i] == 0 && (i == 0 || flowerbed[i-1] == 0) && (i + 1 == flowerbedSize || flowerbed[i+1] == 0))
        { 
            flowerbed[i] = 1;                                                                  
            res++;                                                                             
        }
    }
    return res >= n;                                                                         
}
  1. Python版
class Solution:
    def canPlaceFlowers(self, flowerbed: List[int], n: int) -> bool:
        res = 0
        for i in range(0,len(flowerbed)):
            if (flowerbed[i] == 0) and (i + 1 == len(flowerbed) or flowerbed[i + 1] == 0) and (i == 0 or flowerbed[i - 1] == 0):
                flowerbed[i] = 1
                res += 1
        return res >= n

十【提交结果】

  1. Java语言版
    在这里插入图片描述

  2. C语言版
    在这里插入图片描述

  3. Python语言版
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/388565.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot 读取自定义Properties参数

目录 1. 概述 2. 实现方式 2.1 Value方式 2.2 PropertySource与ConfigurationProperties相结合 3. 结束 1. 概述 最近想尝试写一个定时任务管理&#xff0c;相关参数不想在Spring的配置文件Application.yml或者Application.properties获取。想自己新建一个properties文件。顺…

基于ANSYS的无约束梁的模态分析与实验结果比较

一、实验模型简介 该模型来源于文献&#xff1a;“Khatir, A., Capozucca, R., Khatir, S. et al. Vibration-based crack prediction on a beam model using hybrid butterfly optimization algorithm with artificial neural network. Front. Struct. Civ. Eng. 16, 976–98…

Pr 定格拍照动画

哈喽&#xff0c;各位小伙伴&#xff01;今天我们来学习一下如何制作定格拍照动画&#xff1f; ​ 新建序列 新建一个1920*1080的序列&#xff0c;将视频拖入序列中 选择定格画面右键—插入帧定格分段中间部分就会变成一张图片&#xff08;图片时长可伸缩&#xff09; 复制素…

数据结构与算法之堆排序

目录堆排序概述代码实现时间复杂度堆排序概述 堆排序&#xff08;Heap Sort&#xff09;是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构&#xff0c;每个结点的值都大于或等于其左右孩子结点的值&#xff0c;称为大顶堆&#xff1b;或者每个结点…

LINE、SDNE和struc2vec图嵌入算法学习笔记

引言 在cs224w课程中&#xff0c;我先后总结了deepwalk、node2vec&#xff0c;这两种算是最经典也是最主流的做法&#xff0c;而在 图节点嵌入相关算法学习笔记 中&#xff0c;从头至尾&#xff0c;将一些经典算法用wiki的数据集复现了一下&#xff0c;所以本篇博文&#xff0…

2023版会声会影电脑配置要求及功能介绍

可能大家已经看到网络上关于会声会影2023新版的一些消息&#xff0c;今天coco玛奇朵在这里分享2023新版公布信息。会声会影2023中文版功能非常强大的视频编辑软件&#xff0c;非常专业的使用效果&#xff0c;会声会影2023可以针对剪辑电影进行使用&#xff0c;非常强大的色彩校…

借助CatGPT让turtlesim小乌龟画曲线

注意这里是CatGPT&#xff0c;不等同OpenAI的ChatGPT&#xff0c;但是用起来十分方便&#xff0c;效果也还行。详细说明ROS机器人turtlesim绘制曲线需要注意哪些ROS机器人turtlesim绘制曲线需要注意以下几点&#xff1a;绘制曲线前需要设置好turtlesim的初始位置和方向&#xf…

【matplotlib】条形图及垂线显示小技巧 |一些有用参考帖子收集

最近在画图。一方面看论文看思路&#xff0c;一方面用数据跑图出论文雏形。 有些帖子写得很好&#xff0c;不记录的话下次还想看就只能随缘了。 帖子 博客&#xff1a;nxf_rabbit75 matplotlib技巧—9.共享坐标轴、创建多个subplot、调整横坐标、放置文本框、latext文字、平移…

组播详解及示例代码

写在前面 由于公司业务需要用到组播实现&#xff0c;这里就记录下学习过程。在学习组播之前&#xff0c;我们先来看看另外两种数据包传输方式&#xff1a;单播和广播。 单播&#xff1a;简单来说就是数据一对一发送&#xff0c;如果需要给多个主机发送数据时&#xff0c;就需…

Unity入门精要02---纹理

纹理和材质不可分割 本节知识结构 实践&#xff1a;简单贴一张纹理到模型上 首先在属性处添加相关属性 Properties {_Color ("Color Tint", Color) (1, 1, 1, 1)_MainTex ("Main Tex", 2D) "white" {}//加入纹理_Specular ("Specular&q…

虚拟机VirtualBox下载与安装+虚拟机配置

1、虚拟机VirtualBox下载与安装官网地址&#xff1a;Oracle VM VirtualBox进入官网&#xff0c;点击左侧Dwonlaods点击Windows hosts&#xff0c;开始下载3.打开文件.出现报错&#xff1a;Oracle VM VirtualBox 7.0.4 needs the Microsoft Visual C 2019 Redistributable Packa…

转义字符\033(设置终端的字体显示效果)

以下内容源于网络资源的学习与整理&#xff0c;如有侵权请告知删除。 参考博客 命令行特殊显示效果\033和发声音\007_华硕他哥的博客-CSDN博客 \033格式:指定输出格式_51CTO博客_wkt格式 一、\033的说明 在关于ASCII字符的那些事儿中提到&#xff0c;ASCII字符可以使用前面…

2023年天津医科大学临床医学院专升本专业课考试通知

天津医科大学到临床医学院2023年高职升本科专业课考试通知一、考试时间、地点 天津医科大学临床医学院2023年高职升本科考试定于2023年3月25日举行&#xff0c;考试地点为天津市滨海新区大港学苑路167号天津医科大学临床医学院教学楼。 二、准考证打印开放时间 本次考试打印准考…

3.4笔试总结

感觉题目好难没有做过这种类型的填空题真的是给应届实习生做的题吗第一大题 填空题一开始题目放在pdf里,我都没看清题目想干嘛其实题目看起来复杂.如果仔细读题意还是能做出几个空,无奈我太过紧张浪费了好几分钟空档时间public class Main { public static boolean isRegularMa…

内核角度谈谈Linux进程和线程

目录前言内核对进程和线程的表示创建进程的过程创建线程的过程创建进程和线程的异同揭秘 do_fork 系统调用结论前言 昨天面试的时候&#xff0c;面试官问我了个平平淡淡的问题–>“聊聊Linux中进程和线程”; 相比大家不管是在考试还是面试中或多或少都遇到过这个问题&…

python高德地图+58租房网站平台源码

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;python地图 免费获取完整源码源文件说明文档配置教程等 在PyCharm中运行《高德地图58租房》即可进入如图1所示的高德地图网页。 具体的操作步骤如下&#xff1a; &#xff08;1&#xff09;打开地图网页后&#xff0c;在编…

xgboost:防止过拟合的方法收缩和特征列、采样

xgboost除了第2.1节中提到的正则化目标之外&#xff0c;还使用了另外两种技术来进一步防止过拟合1。 目录shrinkage[^1]Column Subsampling[^2]shrinkage2 第一种技术是由弗里德曼提出的收缩。在树提升的每一步之后&#xff0c;收缩率以η因子的比例缩放新添加的权重。与随机优…

Scrapy框架(高效爬虫)

文章目录一、环境配置二、创建项目三、scrapy数据解析四、基于终端指令的持久化存储1、基于终端指令2、基于管道3、数据同时保存至本地及数据库4、基于spider爬取某网站各页面数据5、爬取本页和详情页信息&#xff08;请求传参&#xff09;6、图片数据爬取ImagesPipeline五、中…

IP欺骗种类有哪些?

每台计算机都有一个IP地址&#xff0c;发送的任何数据都被分成许多块&#xff08;“数据包”&#xff09;&#xff0c;每个数据包单独传输&#xff0c;当这些数据包到达链的末端时&#xff0c;就会重新组装并作为一个整体呈现。此外&#xff0c;每个数据包还有其可识别信息&…

4、High-Resolution Image Synthesis with Latent Diffusion Models

简介github地址diffusion model明显的缺点是耗费大量的时间、计算资源&#xff0c;为此&#xff0c;论文将其应用于强大的预训练自编码器的潜在空间 &#xff0c;这是首次允许在复杂性降低和细节保存之间达到一个近乎最佳的点&#xff0c;极大地提高了视觉保真度。通过在模型架…