【每日一题】种花问题

news/2024/7/23 8:53:55 标签: 贪心, 数组, 2023-09-29, C++, 算法

文章目录

  • Tag
  • 题目来源
  • 题目解读
  • 解题思路
  • 写在最后

Tag

贪心】【数组】【2023-09-29


题目来源

605. 种花问题


题目解读

种花要种在空地(没有种过花的位置)上,花不能种在相邻位置上否则会抢夺水资源无法正常生长,你需要判断花坛中的空地是否可以种植指定数量的花。


解题思路

方法一:贪心

从左往右遍历数组 flowerbed,只要能种花就立即种花。只要最后可以种花的数量大于等于 n,返回 true;否则返回 flase

对于位置 i,只要 flowerbed[i-1]flowerbed[i] 以及 flowerbed[i+1] 均为 0,则 i 位置可以种花。

实现代码

class Solution {
public:
    bool canPlaceFlowers(vector<int>& flowerbed, int n) {
        int m = flowerbed.size();
        int cnt = 0;
        for (int i = 0; i < m; ++i) {
            if ((i == 0 || flowerbed[i-1] == 0) && flowerbed[i] == 0 && (i == m-1 || flowerbed[i+1] == 0)) {
                ++cnt;
                ++i; // 下一个位置肯定不能种花,直接跳过
            }
        }
        return cnt >= n;
    }
};

复杂度分析

时间复杂度: O ( n ) O(n) O(n) n n n数组 flowerbed 的长度。

空间复杂度: O ( 1 ) O(1) O(1)


写在最后

如果文章内容有任何错误或者您对文章有任何疑问,欢迎私信博主或者在评论区指出 💬💬💬。

如果大家有更优的时间、空间复杂度方法,欢迎评论区交流。

最后,感谢您的阅读,如果感到有所收获的话可以给博主点一个 👍 哦。


http://www.niftyadmin.cn/n/5060338.html

相关文章

rpc网络

零拷贝 直接IO技术 磁盘–>内核缓冲区(内核空间)–>应用程序内存(用户空间)–>Socket 缓冲区(内核缓冲区)–>网络。 内存映射文件技术 磁盘–>内核缓冲区(内核缓冲区)–>Socket缓冲区(内核缓冲区)–>网络 零拷贝技术 磁盘–>内核缓冲区–>网络…

C++ -- 学习系列 std::deque 的原理与使用

一 deque 是什么? std::deque 是 c 一种序列式容器&#xff0c;其与 vector 类似&#xff0c;其底层内存都是连续的&#xff0c;不同的地方在于&#xff0c; vector 是一端开口&#xff0c;在一端放入数据与扩充空间&#xff0c;而 deque 是双端均开口&#xff0c;都可以放…

第三章:最新版零基础学习 PYTHON 教程(第五节 - Python 运算符—Python 中的赋值运算符)

运算符用于对值和变量执行操作。这些是执行算术、逻辑、按位计算的特殊符号。运算符运算的值称为操作数。 目录 (1) 赋值:该运算符用于将表达式右侧的值赋给左侧操作数。 Python3

SpringCloudStreamkafka接收jsonarray字符串失败

文章目录 场景现象问题处理 场景现象 kafka作为消息队列&#xff0c;作为前端设备数据到后端消费的渠道&#xff0c;也被多个不同微服务消费一个服务与前端边缘计算设备建立socket消息&#xff0c;接收实时交通事件推送&#xff0c;再将事件发送到kafka里面。此处使用的是Spri…

006:连续跌三天,第四天上涨的概率--用python统计

我们已经可以获取到K线信息了&#xff0c;然后我们来进行一些统计&#xff0c;就统计连续三天下跌&#xff0c;第四天上涨的概率。 我们用宁波银行&#xff08;002142&#xff09;最近三年的数据来统计。先用上一篇的程序下载到K线数据&#xff0c;得到文件002142.csv。然后在…

【AI视野·今日Sound 声学论文速览 第十五期】Fri, 29 Sep 2023

AI视野今日CS.Sound 声学论文速览 Fri, 29 Sep 2023 Totally 1 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Audio-Visual Speaker Verification via Joint Cross-Attention Authors R. Gnana Praveen, Jahangir Alam使用语音信号进行了说话人验证的…

python经典百题之利用ellipse and rectangle 画图

首先&#xff0c;让我们理解题目要求&#xff1a;我们需要使用 Python 编写程序来绘制椭圆&#xff08;ellipse&#xff09;和矩形&#xff08;rectangle&#xff09;图形。我们将尝试实现这个要求的三种不同方法。 程序分析 我们的程序将需要使用图形绘制库来实现椭圆和矩形…

QT中计算日期差,并进行加减

1、界面上拖动两个QDateTimeEdit控件&#xff0c;同时设置为开始时间与结束时间&#xff0c;然后再来拖动个pushButton&#xff0c;命名为查询功能&#xff0c;然后槽函数中&#xff0c;实现如下&#xff1a; void Database::on_pushButton_4_clicked() {QDateTime time1 u…