मान लीजिए हमारे पास nums नामक संख्याओं की एक लिस्ट है, जिसमें केवल नॉन-नेगेटिव संख्याएं हैं। यदि nums में ठीक k संख्या में तत्व हैं जो k से बड़े या बराबर हैं, तो मान k ढूंढें। यदि हम ऐसा नहीं ढूंढ सकते, तो -1 लौटाएं।
उदाहरण के लिए, यदि इनपुट है nums = [6, 4, 0, 8, 2, 9], तो आउटपुट होगा 4, क्योंकि ठीक 4 तत्व हैं जो 4 से बड़े या बराबर हैं: [6, 4, 8, 9]।
समाधान दृष्टिकोण
लिस्ट को अवरोही क्रम में सॉर्ट करें। फिर प्रत्येक इंडेक्स i (1-आधारित) के लिए जांचें कि क्या i > nums[i-1] (ब्रेक) या i > nums[i] (उत्तर i लौटाएं)।
numsको रिवर्स ऑर्डर में सॉर्ट करें।i = 1सेlen(nums)-1तक लूप करें:- यदि
i > nums[i-1], तो ब्रेक करें। - अन्यथा यदि
i > nums[i], तोiलौटाएं।
- यदि
- -1 लौटाएं।
पायथन कार्यान्वयन
def solve(nums):
nums.sort(reverse=True)
for i in range(1, len(nums)):
if i > nums[i - 1]:
break
elif i > nums[i]:
return i
return -1
nums = [6, 4, 0, 8, 2, 9]
print(solve(nums))
इनपुट
[6, 4, 0, 8, 2, 9]
आउटपुट
4