Skip to content

Commit 59eac0c

Browse files
add 1001
1 parent 4fe8675 commit 59eac0c

File tree

3 files changed

+43
-1
lines changed

3 files changed

+43
-1
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,4 +341,5 @@ LeetCode
341341
|0996|[Number of Squareful Arrays](https://leetcode.com/problems/number-of-squareful-arrays/) | c | [c++](./src/0996-Number-of-Squareful-Arrays/0996.cpp) |[python](./src/0996-Number-of-Squareful-Arrays/0996.py)|||Hard|
342342
|0997|[Find the Town Judge](https://leetcode.com/problems/find-the-town-judge/) | c | [c++](./src/0997-Find-the-Town-Judge/0997.cpp) |[python](./src/0997-Find-the-Town-Judge/0997.py)|||Easy|
343343
|0998|[Maximum Binary Tree II](https://leetcode.com/problems/maximum-binary-tree-ii/) | c | [c++](./src/0998-Maximum-Binary-Tree-II/0998.cpp) |[python](./src/0998-Maximum-Binary-Tree-II/0998.py)|||Medium|
344-
|0999|[Available Captures for Rook](https://leetcode.com/problems/available-captures-for-rook/) | c | [c++](./src/0999-Available-Captures-for-Rook/0999.cpp) |[python](./src/0999-Available-Captures-for-Rook/0999.py)|||Easy|
344+
|0999|[Available Captures for Rook](https://leetcode.com/problems/available-captures-for-rook/) | c | [c++](./src/0999-Available-Captures-for-Rook/0999.cpp) |[python](./src/0999-Available-Captures-for-Rook/0999.py)|||Easy|
345+
|1001|[Grid Illumination](https://leetcode.com/problems/grid-illumination/) | c | [c++](./src/1001-Grid-Illumination/1001.cpp) |[python](./src/1001-Grid-Illumination/1001.py)|||Hard|

src/1001-Grid-Illumination/1001.cpp

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
static int x = []() {std::ios::sync_with_stdio(false); cin.tie(0); return 0; }();
2+
class Solution
3+
{
4+
public:
5+
vector<int> gridIllumination(int N, vector<vector<int>>& lamps, vector<vector<int>>& queries)
6+
{
7+
unordered_map<int, int> r, c, dia1, dia2;
8+
unordered_set<pair<int, int>, pairHash> lp;
9+
for (auto& lamp : lamps)
10+
{
11+
r[lamp[0]]++, c[lamp[1]]++, dia1[lamp[0]+lamp[1]]++, dia2[lamp[0]-lamp[1]]++;
12+
lp.insert({lamp[0], lamp[1]});
13+
}
14+
15+
vector<int> res;
16+
for (auto& q : queries)
17+
{
18+
if (r[q[0]] or c[q[1]] or dia1[q[0] + q[1]] or dia2[q[0] - q[1]]) res.push_back(1);
19+
else res.push_back(0);
20+
for (int x = -1; x < 2; ++x)
21+
{
22+
for (int y = -1; y < 2; ++y)
23+
{
24+
25+
int nx = x + q[0];
26+
int ny = y + q[1];
27+
if (lp.erase({nx, ny}))
28+
{
29+
r[nx]--, c[ny]--, dia1[nx+ny]--,dia2[nx-ny]--;
30+
}
31+
}
32+
}
33+
}
34+
return res;
35+
}
36+
private:
37+
struct pairHash
38+
{
39+
size_t operator()(const pair<int, int> &x) const { return x.first ^ x.second; }
40+
};
41+
};

src/1001-Grid-Illumination/1001.py

Whitespace-only changes.

0 commit comments

Comments
 (0)