File tree Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change 1+ class Solution {
2+ public:
3+ bool checkValidCuts(int n, vector<vector<int>>& rectangles) {
4+ int s = rectangles.size();
5+ vector<vector<int>> ver, hor;
6+
7+ // Store vertical and horizontal segment ranges
8+ for (auto i : rectangles) {
9+ ver.push_back({i[0], i[2]});
10+ hor.push_back({i[1], i[3]});
11+ }
12+
13+ // Sort vertical segments
14+ sort(ver.begin(), ver.end());
15+ int cnt = 1, mx = ver[0][1];
16+
17+ // Check for vertical cuts
18+ for (int i = 1; i < s; i++) {
19+ if (ver[i][0] < mx)
20+ mx = max(mx, ver[i][1]);
21+ else {
22+ cnt++;
23+ mx = ver[i][1];
24+ }
25+ if (cnt >= 3) return true;
26+ }
27+
28+ // Sort horizontal segments
29+ sort(hor.begin(), hor.end());
30+ cnt = 1, mx = hor[0][1];
31+
32+ // Check for horizontal cuts
33+ for (int i = 1; i < s; i++) {
34+ if (hor[i][0] < mx)
35+ mx = max(mx, hor[i][1]);
36+ else {
37+ cnt++;
38+ mx = hor[i][1];
39+ }
40+ if (cnt >= 3) return true;
41+ }
42+
43+ return false;
44+ }
45+ };
You can’t perform that action at this time.
0 commit comments