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;
    }
};
相关推荐
算法鑫探2 小时前
闰年判断:C语言实战解析
c语言·数据结构·算法·新人首发
WBluuue3 小时前
数据结构与算法:康托展开、约瑟夫环、完美洗牌
c++·算法
木子墨5163 小时前
LeetCode 热题 100 精讲 | 并查集篇:最长连续序列 · 岛屿数量 · 省份数量 · 冗余连接 · 等式方程的可满足性
数据结构·c++·算法·leetcode
2501_921960854 小时前
双相自指图与弦论边界非对易性的结构同源
数据结构
王老师青少年编程4 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【线性扫描贪心】:均分纸牌
c++·算法·编程·贪心·csp·信奥赛·均分纸牌
EQUINOX14 小时前
2026年码蹄杯 本科院校赛道&青少年挑战赛道提高组初赛(省赛)第一场,个人题解
算法
萝卜小白4 小时前
算法实习Day04-MinerU2.5-pro
人工智能·算法·机器学习
Liangwei Lin4 小时前
洛谷 P3133 [USACO16JAN] Radio Contact G
数据结构·算法
weixin_513449965 小时前
PCA、SVD 、 ICP 、kd-tree算法的简单整理总结
c++·人工智能·学习·算法·机器人
code_pgf5 小时前
Qwen2.5-VL 算法解析
人工智能·深度学习·算法·transformer