ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা আছে, আমরা কঠোরভাবে ক্রমবর্ধমান মানগুলির একটি অনুক্রম নির্বাচন করি, যেখানে প্রতিটি দুটি সংখ্যার পার্থক্য তাদের দুটি সূচকের পার্থক্যের সমান। তাই আমাদেরকে এই ধরনের পরের সর্বোচ্চ যোগফল খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুটটি nums =[6, 7, 9, 9, 8, 5] এর মত হয়, তাহলে আউটপুট হবে 22, যেহেতু আমরা পরবর্তী [6, 7, 9] নির্বাচন করি যার সূচকগুলি হল [0, 1, 3]। প্রতিটি ধারাবাহিক সংখ্যার মধ্যে পার্থক্য হল [1, 2] যা তাদের সূচকের পার্থক্যের সমান।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
d :=একটি খালি মানচিত্র
-
প্রতিটি সূচকের জন্য i এবং মান x সংখ্যায়, করুন
-
d[x − i] :=d[x − i] + x
-
-
d
-এ সমস্ত মান সর্বাধিক ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, nums): from collections import defaultdict d = defaultdict(int) for i, x in enumerate(nums): d[x − i] += x return max(d.values()) ob1 = Solution() nums = [6, 7, 9, 9, 8, 5] print(ob1.solve(nums))
ইনপুট
[6, 7, 9, 9, 8, 5]
আউটপুট
22