文章目录
-
- 原题题目
- 代码实现(首刷自解)
原题题目
代码实现(首刷自解)
class Solution {
public:vector<int> avoidFlood(vector<int>& rains) {
unordered_map<int,int> map;set<int> set;vector<int> ret(rains.size(),-1);for(int i=0;i<rains.size();++i){
if(!rains[i]){
set.emplace(i);ret[i] = 1;}else{
if(map.find(rains[i]) == map.end()) map[rains[i]] = i;else{
auto iter = set.lower_bound(map[rains[i]]);if(iter == set.end()){
ret.clear();break;}else{
ret[*iter] = rains[map[rains[i]]];set.erase(iter);map[rains[i]] = i;}}}}return ret;}
};