मान लीजिए हमारे पास एक प्लेन पर बिंदुओं की सूची है। हमें किसी भी 3 बिंदुओं से बनने वाले सबसे बड़े त्रिकोण का क्षेत्रफल ज्ञात करना है।
उदाहरण के लिए, यदि इनपुट [[0,0],[0,1],[1,0],[0,2],[2,0]] है, तो आउटपुट 2 होगा।

हल करने के चरण
- res := 0
- N := बिंदुओं की सूची का आकार
- i को 0 से N-2 तक लूप करें:
- j को i+1 से N-1 तक लूप करें:
- k को i+2 से N तक लूप करें:
- (x1, y1) := points[i]
- (x2, y2) := points[j]
- (x3, y3) := points[k]
- res := max(res, 0.5 * |x1*(y2-y3) + x2*(y3-y1) + x3*(y1-y2)|)
- k को i+2 से N तक लूप करें:
- j को i+1 से N-1 तक लूप करें:
- res वापस करें
उदाहरण
class Solution:
def largestTriangleArea(self, points):
res = 0
N = len(points)
for i in range(N - 2):
for j in range(i + 1, N - 1):
for k in range(i + 2, N):
(x1, y1), (x2, y2), (x3, y3) = points[i], points[j], points[k]
res = max(res, 0.5 * abs(x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)))
return res
ob = Solution()
print(ob.largestTriangleArea([[0,0],[0,1],[1,0],[0,2],[2,0]]))
इनपुट
[[0,0],[0,1],[1,0],[0,2],[2,0]]
आउटपुट
2.0