1class Solution {2public:3bool isRectangleCover(vector<vector<int>> &rectangles) {4unordered_map<long long, int> mark;5const long long N = 1000000;6for (vector<int> &x : rectangles) {7int x1 = x[0];8int y1 = x[1];9int x2 = x[2];10int y2 = x[3];11mark[x1 * N + y1]++;12mark[x1 * N + y2]--;13mark[x2 * N + y1]--;14mark[x2 * N + y2]++;15}16int n_mark = 0;17for (auto ptr = mark.begin(); ptr != mark.end(); ptr++)18if (ptr->second != 0) {19if (abs(ptr->second) != 1) return false;20n_mark++;21}22return n_mark == 4;23}24};