ধরুন আমাদের কাছে সংখ্যার সংখ্যার একটি তালিকা আছে, আমাদেরকে তালিকার মধ্যে তালিকা আপডেট করে তালিকার শেষে সমস্ত শূন্য রাখতে হবে। এবং অন্যান্য উপাদানের আপেক্ষিক ক্রম পরিবর্তন করা উচিত নয়। আমাদের O(1) অতিরিক্ত স্থানে এটি সমাধান করার চেষ্টা করতে হবে।
সুতরাং, ইনপুট যদি [2,0,1,4,0,5,6,4,0,1,7] এর মত হয়, তাহলে আউটপুট হবে [2, 1, 4, 5, 6, 4, 1] , 7, 0, 0, 0]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- যদি L-এর আকার 0 এর সমান হয়, তাহলে
- একটি ফাঁকা তালিকা ফেরত দিন
- k :=0
- এর জন্য 0 থেকে L এর আকারের মধ্যে, করুন
- যদি L[i] 0 এর মত না হয়, তাহলে
- L[k] :=L[i]
- k :=k + 1
- যদি L[i] 0 এর মত না হয়, তাহলে
- j-এর জন্য k থেকে L আকারের মধ্যে, করুন
- L[j] :=0
- প্রত্যাবর্তন এল
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, L): if len(L) == 0: return [] k = 0 for i in range(len(L)): if L[i] != 0: L[k] = L[i] k+=1 for j in range(k,len(L)): L[j] = 0 return L ob = Solution() L = [2,0,1,4,0,5,6,4,0,1,7] print(ob.solve(L))
ইনপুট
[2,0,1,4,0,5,6,4,0,1,7]
আউটপুট
[2, 1, 4, 5, 6, 4, 1, 7, 0, 0, 0]