391 Perfect Rectangle 完美矩形
阿新 • • 發佈:2018-04-16
精確 cor 正方形 tps second 矩形 des val pub
有 N 個與坐標軸對齊的矩形, 其中 N > 0, 判斷它們是否能精確地覆蓋一個矩形區域。
每個矩形用左下角的點和右上角的點的坐標來表示。例如, 一個單位正方形可以表示為 [1,1,2,2]。 ( 左下角的點的坐標為 (1, 1) 以及右上角的點的坐標為 (2, 2) )。
詳見:https://leetcode.com/problems/perfect-rectangle/description/
C++:
class Solution { public: bool isRectangleCover(vector<vector<int>>& rectangles) { unordered_map<string, int> hash; for(auto val: rectangles) { for(int i = 0; i < 4; i++) { string tem = to_string(val[i/2*2])+‘,‘+to_string(val[i%2*2+1]); if(hash[tem]&(1<<i)) { return false; } hash[tem] |= (1<<i); } } int cntCorner = 0; for(auto& val: hash) { int sec = val.second; if(!(sec&(sec-1)) && cntCorner++ > 4) { return false; } if((sec&(sec-1)) && !(sec==3||sec==12||sec==5||sec==10||sec==15)) { return false; } } return true; } };
參考:https://blog.csdn.net/qq508618087/article/details/52483625
391 Perfect Rectangle 完美矩形