ধরুন আমাদের কাছে সংখ্যার সংখ্যার একটি তালিকা আছে এবং অন্য একটি মানের পার্থক্য আছে, আমাদেরকে দীর্ঘতম পাটিগণিতের অনুগামীর দৈর্ঘ্য খুঁজে বের করতে হবে যেখানে পরবর্তীতে যেকোনো ধারাবাহিক সংখ্যার মধ্যে পার্থক্যটি পার্থক্যের সমান।
সুতরাং, যদি ইনপুটটি nums =[-1, 1, 4, 7, 2, 10] diff =3 এর মত হয়, তাহলে আউটপুট হবে 4, কারণ, আমরা [1, 4, 7, 10 এর মত পরবর্তি বাছাই করতে পারি। ]।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- দেখা হয়েছে :=একটি খালি অভিধান, কী উপস্থিত না থাকলে ডিফল্ট মান 0 হয়
- mx :=0
- সংখ্যায় প্রতিটি x এর জন্য, করুন
- যদি x - পার্থক্য দেখা যায়, তাহলে
- দেখেছি[x] :=দেখা[x - diff] + 1
- অন্যথায়,
- দেখা হয়েছে[x] :=1
- mx :=সর্বাধিক mx এবং দেখা[x]
- যদি x - পার্থক্য দেখা যায়, তাহলে
- mx ফেরত দিন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
সংগ্রহ থেকে আমদানি defaultdictdef solve(nums, diff):দেখা =defaultdict(int) mx =0 এর জন্য x সংখ্যায়:যদি x - diff in see:দেখা[x] =দেখা[x - diff] + 1 else:দেখা[x] =1 mx =max(mx, দেখা[x]) ফেরত mxnums =[-1, 1, 4, 7, 2, 10]diff =3print(solve(nums, diff))
ইনপুট
<প্রে>[-1, 1, 4, 7, 2, 10], 3আউটপুট
4