একটি সিটিতে প্রতিটি হাউসে টাকা আছে। এক রাতেই রবারি করতে হবে, কিন্তু দুটি সन्नিহিত হাউস রবার করলে পুলিশ ডাকাবে। সর্বোচ্চ কত টাকা রবার করা যায় তা বের করতে হবে। ডাইনামিক প্রোগ্রামিং সমাধান।
সমাধানের পদ্ধতি
prev1 = 0,prev2 = 0ইনিশিয়ালাইজ করুন।- প্রতিটি হাউসের জন্য:
temp = prev1prev1 = max(prev2 + nums[i], prev1)prev2 = temp
prev1রিটার্ন করুন।
উদাহরণ কোড
class Solution(object):
def rob(self, nums):
prev2 = 0
prev1 = 0
for i in range(0, len(nums)):
temp = prev1
prev1 = max(prev2 + nums[i], prev1)
prev2 = temp
return prev1
ob1 = Solution()
print(ob1.rob([2,7,10,3,1]))
ইনপুট
nums = [2,7,10,3,1]
আউটপুট
13