当前位置: 首页 > 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.dtcms.com/a/3276.html

相关文章:

  • ubuntu 18.04 编译安装flexpart 10.4(2023年) —— 筑梦之路
  • 从历史的探索到RFID固定资产管理的未来
  • Linux|安装Nomachine
  • Java排序学习
  • git建仓库小记
  • 运大模型风起云涌,图解AI如何赋能产业升级?
  • 【python爬虫】设计自己的爬虫 1. request封装
  • 不一样的网络协议-------KCP协议
  • 实体店做商城小程序如何
  • vue2+antd——实现动态菜单路由功能——基础积累
  • 通过zookeeper浅谈一致性算法
  • Angular-03:组件模板
  • 使用Python批量修改PPT字体和提取全部文字到word
  • SMART PLC梯形速度曲线轨迹规划(追剪从轴控制)
  • [读论文] On Joint Learning for Solving Placement and Routing in Chip Design
  • 枚举类型 表示不同的 HTTP 状态码和相应的错误消息
  • 如何做好高校后勤管理?有什么好用的高校后勤管理软件?
  • Python Flask
  • leetCode 169. 多数元素 + 摩尔投票法
  • C# 图解教程 第5版 —— 第13章 数组
  • HTTPS协议:保障网络安全的加密通信协议
  • vue 路由懒加载,图片懒加载,组件懒加载
  • Steger算法实现结构光光条中心提取(python版本)
  • 2023.10.28 关于 synchronized 原理
  • Ubuntu编译 PCL 1.13.1 详细流程
  • 嵌入式系统>嵌入式硬件知识
  • OpenText 安全取证软件——降低成本和风险的同时,简化电子取证流程
  • gradle多模块依赖管理最佳实践
  • 基于STM32的示波器信号发生器设计
  • 软考 系统架构设计师系列知识点之设计模式(6)