কম্পিউটার টিউটোরিয়াল

পাইথনে সর্বোচ্চ ত্রিভুজের এলিয়া (Largest Triangle Area) নির্ণয়


সমস্যা বিবরণ

একটি প্লেনে কিছু পয়েন্ট দেওয়া থাকে। যেকোনো ৩টি পয়েন্ট দিয়ে তৈরি ত্রিভুজের মধ্যে সর্বোচ্চ এলিয়া বের করুন।

উদাহরণ

ইনপুট: [[0,0],[0,1],[1,0],[0,2],[2,0]] → আউটপুট: 2.0

গাণিতিক সূত্র

ত্রিভুজের শীর্ষবিন্দু (x1,y1), (x2,y2), (x3,y3) হলে এলিয়া = 0.5 * |x1(y2-y3) + x2(y3-y1) + x3(y1-y2)|

এলগরিদম

  1. res = 0, N = len(points)।
  2. ৩টি নেস্টেড লুপ দিয়ে সব সম্ভাব্য ত্রিকোণ (i, j, k) চেক করুন।
  3. প্রতিটি ত্রিকোণের জন্য উপরের সূত্রে এলিয়া হিসাব করুন এবং res = max(res, area) আপডেট করুন।
  4. res রিটার্ন করুন।

সময় জটিলতা: O(N³) — ছোট ইনপুটের জন্য উপযোগী।

পাইথন বাস্তবায়ন

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(j + 1, N):
                    (x1, y1), (x2, y2), (x3, y3) = points[i], points[j], points[k]
                    area = 0.5 * abs(x1*(y2-y3) + x2*(y3-y1) + x3*(y1-y2))
                    res = max(res, area)
        return res

ob = Solution()
print(ob.largestTriangleArea([[0,0],[0,1],[1,0],[0,2],[2,0]]))  # 2.0

ইনপুট / আউটপুট

ইনপুট: [[0,0],[0,1],[1,0],[0,2],[2,0]]
আউটপুট: 2.0
  1. C++-এ হেক্সাগনে ইনস্ক্রাইবড সবচেয়ে বড় ট্রায়্যাঙ্গেলের এলিয়া

  2. পাইথনে পলিগনের ক্ষেত্রফল বের করার প্রোগ্রাম

  3. পাইথনে হিস্টোগ্রামের নিচে সর্বোচ্চ আয়তাকার এলাকা খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে হিস্টোগ্রামে সবচেয়ে বড় আয়ত