ধরুন আমাদের একটি সাজানো তালিকা A আছে। সব ডুপ্লিকেট এন্ট্রি মুছে ফেলার পর আমাদের অ্যারের দৈর্ঘ্য ফেরত দিতে হবে। আমাদের এটি O(1) অতিরিক্ত স্থানে সম্পাদন করতে হবে। তাই আমাদের জায়গায় জায়গায় অপারেশন করতে হবে।
উদাহরণস্বরূপ, ধরুন A =[1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 5, 5, 5, 6] তাহলে আউটপুট হবে 6, কারণ ছয়টি স্বতন্ত্র উপাদান রয়েছে।
এটি সমাধান করতে, এই ধাপগুলি অনুসরণ করুন -
- তালিকা খালি থাকলে, 0 ফেরত দিন
- অন্যথায়, প্রাথমিকভাবে পূর্ববর্তী =A এর প্রথম উপাদান নিন। এবং দৈর্ঘ্য =0 নির্ধারণ করুন
- এর জন্য i :=1 থেকে n-1, কর
- যদি A[i] আগের মত না হয়, তাহলে
- দৈর্ঘ্য :=দৈর্ঘ্য + 1
- আগের :=A[i]
- যদি A[i] আগের মত না হয়, তাহলে
- রিটার্ন দৈর্ঘ্য
আরো ভালোভাবে বোঝার জন্য বাস্তবায়ন দেখি
উদাহরণ (পাইথন)
class Solution(object): def removeDuplicates(self, nums): """ :type nums: List[int] :rtype: int """ if len(nums) == 0: return 0 length = 1 previous = nums[0] index = 1 for i in range(1,len(nums)): if nums[i] != previous: length += 1 previous = nums[i] nums[index] = nums[i] index+=1 return length input_list = [1,1,2,2,2,3,3,3,3,4,5,5,5,6] ob1 = Solution() print(ob1.removeDuplicates(input_list))
ইনপুট
[1,1,2,2,2,3,3,3,3,4,5,5,5,6]
আউটপুট
6