একটি স্ট্রিক্টলি বৃদ্ধিমান ধনাত্মক সংখ্যার সর্ট করা অ্যারে এবং একটি পূর্ণসংখ্যা k দেওয়া আছে। অ্যারেতে নেই এমন k-তম ধনাত্মক সংখ্যা বের করতে হবে।
সমস্যা বিবরণ
ইনপুট: nums = [1,2,4,8,12], k = 6
অনুপস্থিত সংখ্যাগুলো: [3,5,6,7,9,10,11]। ৬-তমটি হলো 10।
সমাধানের ধাপসমূহ
- অ্যারেটি একটি সেটে রূপান্তর করুন O(1) লুকআপের জন্য।
count = 0এবংnum = 1আরম্ভ করুন।count < kথাকা পর্যন্ত লুপ চালান:- যদি
numসেটে না থাকে, তবেcountবাড়ান। - যদি
count == kহয়, তবেnumরিটার্ন করুন। numবাড়ান।
- যদি
পাইথন উদাহরণ
def solve(nums, k):
nums = set(nums)
count = 0
num = 1
while count < k:
if num not in nums:
count += 1
if count == k:
return num
num += 1
return num
nums = [1,2,4,8,12]
k = 6
print(solve(nums, k)) # আউটপুট: 10
ইনপুট
[1,2,4,8,12], 6
আউটপুট
10