সমস্যা বিবরণ
একটি অ্যারে nums এবং একটি ভ্যালু val দেওয়া থাকে। val এর সব আকারেন্স ইন-প্লেস (extra space ছাড়া) রিমুভ করুন এবং নতুন দৈর্ঘ্য রিটার্ন করুন।
উদাহরণ
nums = [0,1,5,5,3,0,4,5], val = 5 → আউটপুট: 5
নতুন অ্যারে (প্রথম ৫টি): [0,1,3,0,4]।
এলগরিদম (Two Pointers)
count = 0(নতুন অ্যারের ইনডেক্স)।for i in range(len(nums)):- যদি
nums[i] != val→nums[count] = nums[i],count += 1।
- যদি
return count।
পাইথন বাস্তবায়ন
class Solution:
def removeElement(self, nums, val):
count = 0
for i in range(len(nums)):
if nums[i] != val:
nums[count] = nums[i]
count += 1
return count
ob = Solution()
nums = [0,1,5,5,3,0,4,5]
new_len = ob.removeElement(nums, 5)
print(new_len) # 5
print(nums[:new_len]) # [0, 1, 3, 0, 4]
ইনপুট / আউটপুট
ইনপুট: [0,1,5,5,3,0,4,5], 5 আউটপুট: 5