মান লক্ষ্য করুন আমাদের কাছে একটি সংখ্যার তালিকা nums আছে। আমাদের কাজ হল একটি ন্যূনতম যোগফল বিশিষ্ট সাবসিকোয়েন্স বের করা যাতে المستمر তিনটি এলিমেন্টের যেকোনো গ্রুপ থেকে কমপক্ষে একটি সংখ্যা নির্বাচন করা হয়। যদি তালিকার দৈর্ঘ্য ৩-এর চেয়ে কম হয়, তবে তবুও একটি সংখ্যা নির্বাচন করতে হবে।
উদাহরণস্বরূপ, যদি ইনপুট হয় nums = [2, 3, 4, 5, 6, 7], তবে আউটপুট হবে 7, কারণ আমরা ২ এবং ৫ কে নির্বাচন করতে পারি।
n := len(nums)- যদি
n == 0হয়, তবে0রিটার্ন করুন। - যদি
n == 1হয়, তবেnums[0]রিটার্ন করুন। - যদি
n == 2হয়, তবেmin(nums[0], nums[1])রিটার্ন করুন। table :=আকারnএমন একটি তালিকা ০ দিয়ে ভরা।table[0] := nums[0],table[1] := nums[1],table[2] := nums[2]iকে ৩ থেকেnপর্যন্ত লুপ চালান:table[i] := nums[i] + min(table[i-3], table[i-2], table[i-1])
res := min(table[n-1], table[n-2], table[n-3])resরিটার্ন করুন।
class Solution:
def solve(self, nums):
n = len(nums)
if n == 0:
return 0
if n == 1:
return nums[0]
if n == 2:
return min(nums[0], nums[1])
table = [0] * n
table[0] = nums[0]
table[1] = nums[1]
table[2] = nums[2]
for i in range(3, n):
table[i] = nums[i] + min(table[i-3], table[i-2], table[i-1])
res = min(table[n-1], table[n-2], table[n-3])
return res
ob = Solution()
nums = [2, 3, 4, 5, 6, 7]
print(ob.solve(nums))
[2, 3, 4, 5, 6, 7]
7