当前位置: 首页 > news >正文

移动网站建设信息长沙网站关键词排名推广公司

移动网站建设信息,长沙网站关键词排名推广公司,做环评工作的常用网站,wordpress 插件 翻译目录 1488. 避免洪水泛滥 实现代码与解析: 贪心 原理思路: 1488. 避免洪水泛滥 题目描述: 你的国家有无数个湖泊,所有湖泊一开始都是空的。当第 n 个湖泊下雨前是空的,那么它就会装满水。如果第 n 个湖泊下雨前是…

目录

1488. 避免洪水泛滥

实现代码与解析:

贪心

原理思路:


1488. 避免洪水泛滥

题目描述:

        你的国家有无数个湖泊,所有湖泊一开始都是空的。当第 n 个湖泊下雨前是空的,那么它就会装满水。如果第 n 个湖泊下雨前是 满的 ,这个湖泊会发生 洪水 。你的目标是避免任意一个湖泊发生洪水。

给你一个整数数组 rains ,其中:

  • rains[i] > 0 表示第 i 天时,第 rains[i] 个湖泊会下雨。
  • rains[i] == 0 表示第 i 天没有湖泊会下雨,你可以选择 一个 湖泊并 抽干 这个湖泊的水。

请返回一个数组 ans ,满足:

  • ans.length == rains.length
  • 如果 rains[i] > 0 ,那么ans[i] == -1 。
  • 如果 rains[i] == 0 ,ans[i] 是你第 i 天选择抽干的湖泊。

如果有多种可行解,请返回它们中的 任意一个 。如果没办法阻止洪水,请返回一个 空的数组 。

请注意,如果你选择抽干一个装满水的湖泊,它会变成一个空的湖泊。但如果你选择抽干一个空的湖泊,那么将无事发生。

示例 1:

输入:rains = [1,2,3,4]
输出:[-1,-1,-1,-1]
解释:第一天后,装满水的湖泊包括 [1]
第二天后,装满水的湖泊包括 [1,2]
第三天后,装满水的湖泊包括 [1,2,3]
第四天后,装满水的湖泊包括 [1,2,3,4]
没有哪一天你可以抽干任何湖泊的水,也没有湖泊会发生洪水。

示例 2:

输入:rains = [1,2,0,0,2,1]
输出:[-1,-1,2,1,-1,-1]
解释:第一天后,装满水的湖泊包括 [1]
第二天后,装满水的湖泊包括 [1,2]
第三天后,我们抽干湖泊 2 。所以剩下装满水的湖泊包括 [1]
第四天后,我们抽干湖泊 1 。所以暂时没有装满水的湖泊了。
第五天后,装满水的湖泊包括 [2]。
第六天后,装满水的湖泊包括 [1,2]。
可以看出,这个方案下不会有洪水发生。同时, [-1,-1,1,2,-1,-1] 也是另一个可行的没有洪水的方案。

示例 3:

输入:rains = [1,2,0,1,2]
输出:[]
解释:第二天后,装满水的湖泊包括 [1,2]。我们可以在第三天抽干一个湖泊的水。
但第三天后,湖泊 1 和 2 都会再次下雨,所以不管我们第三天抽干哪个湖泊的水,另一个湖泊都会发生洪水。

提示:

  • 1 <= rains.length <= 105
  • 0 <= rains[i] <= 109

实现代码与解析:

贪心

class Solution {
public:vector<int> avoidFlood(vector<int>& rains) {int n = rains.size();vector<int> res(n, 1); // 没雨的日子就算不抽水,也要选一个湖泊1unordered_map<int, int> full; // <满的湖泊编号,在第几天满的>set<int> no_rain_days; // 从小到大排序, 无水的日子,可以抽水的机会日子for (int i = 0; i < n; i++) {if (rains[i] == 0) no_rain_days.insert(i); // 无雨,先把抽水的机会存起来else {res[i] = -1;if (full.count(rains[i])) { // 已经满了,再有雨就要洪水了,用掉一次抽水机会auto it = no_rain_days.upper_bound(full[rains[i]]); // 在满后的第一个无雨日抽水,这里是满足贪心规则,为了后面操作的最优选择if (it == no_rain_days.end()) return {}; // 如果满后没有无水日,那么ggres[*it] = rains[i]; // 记录结果,这天我们抽水的湖泊编号no_rain_days.erase(it); // 这个机会用了,去除}full[rains[i]] = i; // 今天下雨了,灌满}}return res;}
};

原理思路:

        感觉注释写的非常详细了。

http://www.dinnco.com/news/35314.html

相关文章:

  • 标智客logo设计免费生成sem和seo的区别
  • 国务院政府网站发展建设的意见企业网络规划设计方案
  • 做淘客网站 知乎second是什么意思
  • 有专门做宝宝用品的网站吗seo网站关键词排名优化
  • 如何处理公关危机品牌推广百度seo
  • 厦门大型企业网站开发公司磁力神器
  • 以前有个自助建设网站网站seo推广公司靠谱吗
  • 325平台代理seo服务公司招聘
  • 网站建设平台方案设计搜索引擎优化代理
  • wordpress网站首页链接乱码广州白云区新闻头条最新消息今天
  • 河南企业网站建设优化关键词是什么意思
  • 济南自适应网站建设seo和sem的联系
  • 有没有只做软装方案收设计费的网站百度账号怎么注册
  • 境内境外网站区别seo查询系统
  • 企业培训网站网站推广优化外包公司
  • 网站链接提交软文关键词排名推广
  • 别人给我们做的网站如何关闭百度收录入口在哪里
  • 博客可以放自己做的网站外国网站的浏览器
  • 做网站的人多吗独立网站
  • 中山专业外贸网站建设网站优化seo培训
  • 取公司名字大全免费查询windows优化大师是哪个公司的
  • 做包装盒效果图网站朝阳区搜索优化seosem
  • 绵阳网站建设优化阿里指数在线查询
  • 做网站卖赚钱吗seo专员工作内容
  • 与人妖做视频网站济南做网站建设的公司
  • 网站开发费用报价表百度下载百度2023最新版
  • 广州冼村地铁站百度知道合伙人官网
  • 嘉兴app开发公司网站优化排名软件网站
  • 华为开发者seo网站优化服务
  • 安徽网络优化方案seo推广学院