ধরা যাক nums নামক একটি সর্টেড অনন্য সংখ্যার তালিকা এবং একটি পূর্ণসংখ্যা k আছে। তালিকার প্রথম উপাদান থেকে k-তম অনুপস্থিত সংখ্যা খুঁজে বের করতে হবে।
উদাহরণ: nums = [5,6,8,10,11], k = 1 হলে আউটপুট 9, কারণ 9 হল দ্বিতীয় (ইন্ডেক্স 1) অনুপস্থিত সংখ্যা।
সমাধানের ধাপসমূহ
- i = 1 থেকে len(nums)-1 পর্যন্ত:
- diff := nums[i] - nums[i-1] - 1
- যদি k >= diff হয়, k := k - diff
- অন্যথায়, nums[i-1] + k + 1 ফেরত দিন।
- nums[-1] + k + 1 ফেরত দিন।
উদাহরণ কোড
class Solution:
def solve(self, nums, k):
for i in range(1, len(nums)):
diff = nums[i] - nums[i - 1] - 1
if k >= diff:
k -= diff
else:
return nums[i - 1] + k + 1
return nums[-1] + k + 1
ob = Solution()
nums = [5,6,8,10,11]
k = 1
print(ob.solve(nums, k))
ইনপুট
[5,6,8,10,11], 1
আউটপুট
9