ধরুন আমাদের কাছে বলা সংখ্যার একটি তালিকা আছে। এখন আসুন আমরা যেকোন জোড়া সূচক (i, j) বিবেচনা করি যেখানে i
সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[3, 4, 2, 2, 4], তাহলে আউটপুট হবে 5, আমরা 3 এবং 2 মান নির্বাচন করতে পারি তাই মোট যোগফল 5। আমরা 2 এবং 2 নির্বাচন করতে পারি না কারণ তারা সংলগ্ন, এবং j - i> 1 সীমাবদ্ধতা লঙ্ঘন করছে৷
৷এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- n :=সংখ্যার আকার
- min_seen :=সংখ্যা[0]
- উত্তর :=inf
- 2 থেকে n - 1 রেঞ্জের জন্য, করুন
- উত্তর :=সর্বনিম্ন উত্তর এবং (মিনিমাম_দেখা + সংখ্যা[i])
- min_seen :=সর্বনিম্ন min_seen এবং nums[i - 1]
- উত্তর ফেরত দিন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(nums): n = len(nums) min_seen = nums[0] ans = float("inf") for i in range(2, n): ans = min(ans, min_seen + nums[i]) min_seen = min(min_seen, nums[i - 1]) return ans nums = [3, 4, 2, 2, 4] print(solve(nums))
ইনপুট
[3, 4, 2, 2, 4]
আউটপুট
5