ধরুন একটি পূর্ণসংখ্যার অ্যারে আছে। আমাদের লংগেস্ট কনসেকিউটিভ এলিমেন্ট সিকোয়েন্সের দৈর্ঘ্য বের করতে হবে। যেমন [100, 4, 250, 1, 3, 2] ইনপুটের জন্য উত্তর ৪, কারণ লংগেস্ট কনসেকিউটিভ সিকোয়েন্স [1,2,3,4]।
সমাধানের ধাপগুলো −
- অ্যারেকে সেটে রূপান্তর করুন, longest := 0
- a-তে থাকা প্রতিটি i এর জন্য − যদি i-1 a-তে না থাকে তবে current := i, streak := 0; while i in a − i++, streak++; longest = max(longest, streak)
- longest রিটার্ন করুন
উদাহরণ
নিচের ইমপ্লিমেন্টেশনটি দেখুন −
class Solution(object):
def longestConsecutive(self, a):
a = set(a)
longest = 0
for i in a:
if i-1 not in a:
current = i
streak = 0
while i in a:
i+=1
streak+=1
longest = max(longest,streak)
return longest
ob = Solution()
print(ob.longestConsecutive([100,4,250,1,3,2]))
ইনপুট
[100,4,250,1,3,2]
আউটপুট
4