মনে করুন nums একটি তালিকা যার আকার n, সব সংখ্যা [1, n] ইন্টারভালে আছে। কিছু উপাদান দুবার থাকতে পারে, কিছু একবার। [1, n] থেকে যেসব সংখ্যা তালিকায় নেই সেগুলো আরোহী ক্রমে ফেরত দিতে হবে। লিনিয়ার টাইম এবং কনস্ট্যান্ট স্পেসে সমাধান চেষ্টা করুন।
উদাহরণস্বরূপ, [4, 4, 2, 2, 6, 6] হলে আউটপুট [1, 3, 5]।
সমাধানের ধাপসমূহ
- arr := nums+1 আকারের অ্যারে, 0 দিয়ে পূরিত
- প্রতিটি i nums-এ, arr[i]++
- missing := নতুন তালিকা
- i = 0 থেকে arr-এর আকার পর্যন্ত,
- যদি arr[i]==0 এবং i!=0, missing-এ i যোগ করুন
- missing ফেরত দিন
উদাহরণ
class Solution:
def solve(self, nums):
arr = [0]*(len(nums)+1)
for i in nums:
arr[i] += 1
missing = []
for i in range(len(arr)):
if arr[i] == 0 and i != 0:
missing.append(i)
return missing
ob = Solution()
print(ob.solve([4, 4, 2, 2, 6, 6]))ইনপুট
[4, 4, 2, 2, 6, 6]
আউটপুট
[1, 3, 5]