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

Leetcode—1488.避免洪水泛滥【中等】

2023每日刷题(十四)

Leetcode—1488.避免洪水泛滥

算法思想

  • 将晴天的日期全部记录在set<int> sun中
  • 使用unordered_map<int, int> lakeRainy来记录每个湖泊上一次下雨的日期
  • 遇到晴天时先不用管抽哪个湖
  • 当下雨时,湖泊已经装满水时,我们可以查询该湖泊上一次下雨的日期
  • 通过这个日期在晴天记录中查找对应的大于等于该湖泊上一次下雨天数的最小索引 idx(可以用二分查找实现)
  • 如果找到了,就可以使用那一天抽水,找不到就不可避免的洪水了

实现代码

class Solution {
public:vector<int> avoidFlood(vector<int>& rains) {int n = rains.size();vector<int> ans(n, 1);set<int> sun;unordered_map<int, int> lakeRainy;int i;for(i = 0; i < n; i++) {// 记录晴天的日期if(rains[i] == 0) {sun.insert(i);continue;}if(lakeRainy.count(rains[i]) != 0) {auto t = sun.lower_bound(lakeRainy[rains[i]]);if(t == sun.end()) {return {};}ans[*t] = rains[i];sun.erase(t);}ans[i] = -1;lakeRainy[rains[i]] = i;}return ans;}
};

运行结果

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

http://www.lryc.cn/news/213445.html

相关文章:

  • CSS与基本选择器
  • 回归算法|长短期记忆网络LSTM及其优化实现
  • 小米电视播放win10视频 win10共享问题
  • uniApp开发注意要点提炼-xyphf
  • DHorse改用fabric8的SDK与k8s集群交互
  • 如何在阿里云国际站服务器上添加IP白名单?
  • GPT实战系列-ChatGLM2模型的微调训练参数解读
  • RabbitMQ入门到实战教程,消息队列实战,改造配置MQ
  • phar反序列化学习
  • 十年回望 -- JAVA
  • Linux 环境下 安装 Elasticsearch 7.13.2
  • 心理咨询预约小程序
  • 常用排序算法的理解
  • Python小程序 - 文件解析
  • .mxdown-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • audio 标签动态src 且src是http无法播放问题
  • Leetcode—485.最大连续1的个数【中等】明天修改
  • JavaWeb 怎么在servlet向页面输出Html元素?
  • Spring及SpringBoot中AOP的使用
  • cmake多目录构建初步成功
  • idea插件(一)-- SequenceDiagram(UML自动生成工具)
  • STM32 APP跳转到Bootloader
  • [RISC-V]verilog
  • Log4j-tag丢失
  • 代码随想录算法训练营第五十六天|1143.最长公共子序列 ● 1035.不相交的线 ● 53. 最大子序和 动态规划
  • 虚拟机和Windows的文件传输
  • leetcode分类刷题:二叉树(八、二叉搜索树特有的自顶向下遍历)
  • Vue 插槽 组件插入不固定内容
  • webpack打包时配置环境变量
  • 【c++|opencv】一、基础操作---3.访问图像元素