day11力扣打卡

打卡记录

避免洪水泛滥(贪心 + Map + Set)

链接

将晴天的日期全部记录到 set 中。

使用 unordered_map 来记录每个湖泊上一次下雨的日期。

当下雨时,湖泊已经水满了时,查询到上次下雨的日期。

通过这个日期在晴天记录中查找对应的晴天日期。

如果找到了,就可以使用那一天抽水,找不到就不可避免的洪水了。

cpp 复制代码
class Solution {
public:
    vector<int> avoidFlood(vector<int>& rains) {
        int n = rains.size();
        vector<int> ans(n, 1);
        unordered_map<int, int> water;
        set<int> zero;
        for (int i = 0; i < n; ++i) {
            if (rains[i] == 0) {
                zero.insert(i);
                continue;
            }
            else if (water.count(rains[i])) {
                auto it = zero.lower_bound(water[rains[i]]);
                if (it == zero.end()) return {};
                ans[*it] = rains[i];
                zero.erase(it);
            }
            water[rains[i]] = i;
            ans[i] = -1;
        }
        return ans;
    }
};
相关推荐
Andy10 分钟前
C++ list容器基本逻辑结构详解
c++·windows·list
斯内科1 小时前
四胞胎素数:找出‌个位数分别是 1、3、7、9‌,且‌十位及更高位数字完全相同‌的质数,例如 11、13、17、19
算法·质数·素数·四胞胎素数
Hello.Reader1 小时前
算法基础(十二)——主方法:快速求解常见递归式
算法
想唱rap1 小时前
传输层协议TCP
linux·运维·服务器·网络·c++·tcp/ip
小O的算法实验室2 小时前
2026年IEEE TITS,面向按需外卖配送调度的特定问题知识与基于学习元启发式算法,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
加勒比海带662 小时前
目标检测算法——农林行业数据集汇总附下载链接【Plant】
大数据·图像处理·人工智能·算法·目标检测
洛水水2 小时前
【力扣100题】23. 螺旋矩阵
算法·leetcode·矩阵
瑶池酒剑仙2 小时前
C++类和对象完全指南:从封装继承多态到内存布局的面向对象宝典(雨夜论道)
c语言·开发语言·c++·visual studio
影sir2 小时前
不同测试数据下,该如何选择算法
算法·深度优先
潇湘散客2 小时前
CAX软件插件化设计实现牛刀小试
c++·算法·图形学·opengl