当前位置: 首页 > 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;
    }
};

运行结果

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

相关文章:

  • 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章 数组
  • 做刷赞网站能赚钱吗/海外推广代理公司
  • 介绍几个有趣的网站/武汉大学人民医院院长
  • 开发国外优惠卷网站如何做/推广平台app
  • 顶尖网站建设公司/牛排seo
  • 网站建设与管理题库/关键词林俊杰无损下载
  • 怎么做网站里面的模块/今天发生的重大新闻5条