ধরুন আমাদের কাছে টাওয়ারের উচ্চতার একটি তালিকা এবং একটি ধনাত্মক মান k আছে। আমরা k টাওয়ার নির্বাচন করতে চাই এবং আরও ইট যোগ করে সেগুলিকে একই উচ্চতা করতে চাই, তবে যতটা সম্ভব কম ইট ব্যবহার করে। k টাওয়ার বাছাই করতে এবং সেগুলিকে একই উচ্চতায় তৈরি করতে আমাদের সর্বনিম্ন সংখ্যক ইট খুঁজে বের করতে হবে৷
সুতরাং, যদি ইনপুটটি উচ্চতা =[4, 7, 31, 14, 40] k =3 এর মত হয়, তাহলে আউটপুট হবে 17, যেমন আমরা 5, 8, এবং 15 নির্বাচন করতে পারি যার জন্য একই উচ্চতা তৈরি করতে 17টি ইট প্রয়োজন। .
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- তালিকা উচ্চতা বাছাই করুন
- উত্তর :=অসীম
- s :=0
- প্রতিটি সূচী i এবং মান x উচ্চতার জন্য, করুন
- s :=s + x
- যদি i>=k, তাহলে
- s :=s - উচ্চতা[i - k]
- যদি i>=k - 1, তাহলে
- উত্তর :=সর্বনিম্ন উত্তর এবং (x * k - s)
- উত্তর ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, heights, k): heights.sort() ans = float("inf") s = 0 for i, x in enumerate(heights): s += x if i >= k: s -= heights[i - k] if i >= k - 1: ans = min(ans, x * k - s) return ans ob = Solution() heights = [5, 8, 32, 15, 41] k = 3 print(ob.solve(heights, k))
ইনপুট
[5, 8, 32, 15, 41], 3
আউটপুট
17