मान लीजिए हम 2D तल में दो समकोणीय आयतों द्वारा कवर किए गए कुल क्षेत्रफल को ढूंढना चाहते हैं। प्रत्येक आयत को उसके निचले बाएं कोने और ऊपरी दाएं कोने द्वारा परिभाषित किया जाता है।

हल करने के चरण
यदि C = E या A >= G या B >= H या D <= F, तो
(C - A) * (D - B) + (G - E) * (H - F) वापस करें
एक सरणी h परिभाषित करें, इसमें A, C, E, G डालें
एक सरणी v परिभाषित करें, इसमें B, D, F, H डालें
h सरणी और v सरणी को सॉर्ट करें
temp := (h[2] - h[1]) * (v[2] - v[1])
total := temp
total := total + (C - A) * (D - B)
total := total + (G - E) * (H - F)
total वापस करें
उदाहरण (C++)
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
#include <bits/stdc++.h> using namespace std; class Solution { public: int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) { if(C <= E || A >= G || B >= H || D <= F) return (C - A) * (D - B) + (G - E) * (H - F); vector <int> h; h.push_back(A); h.push_back(C); h.push_back(E); h.push_back(G); vector <int> v; v.push_back(B); v.push_back(D); v.push_back(F); v.push_back(H); sort(h.begin(), h.end()); sort(v.begin(), v.end()); long long int temp = (h[2] - h[1]) * (v[2] - v[1]); long long int total = - temp; total += (C - A) * (D - B); total += (G - E) * (H - F); return total; } }; main(){ Solution ob; cout << (ob.computeArea(-3, 0, 3, 4, 0, -1, 9, 2)); }इनपुट
-3 0 3 4 0 -1 9 2
आउटपुट
45