मान लीजिए हमारे पास nums नामक एक पूर्णांक सरणी है, अब हमेशा ठीक एक सबसे बड़ा तत्व होता है। हमें जांचना है कि क्या सरणी में सबसे बड़ा तत्व सरणी में हर दूसरी संख्या से कम से कम दोगुना बड़ा है। यदि हां, तो सबसे बड़े तत्व का सूचकांक ढूंढें, अन्यथा -1 वापस करें।
उदाहरण के लिए, यदि इनपुट [3,6,1,0] है, तो आउटपुट 1 होगा, क्योंकि 6 सबसे बड़ी संख्या है, और सरणी में हर दूसरी संख्या x के लिए, 6, x से दोगुने से अधिक बड़ा है। चूंकि 6 का सूचकांक 1 है, इसलिए आउटपुट भी 1 है।
हल करने के चरण
- maximum := nums का अधिकतम
- i को 0 से nums के आकार तक लूप करें:
- यदि nums[i], maximum के बराबर है, तो:
- maxindex := i
- यदि nums[i], maximum के बराबर नहीं है और maximum < 2*(nums[i]), तो:
- -1 वापस करें
- यदि nums[i], maximum के बराबर है, तो:
उदाहरण
class Solution:
def dominantIndex(self, nums):
maximum = max(nums)
for i in range(len(nums)):
if nums[i] == maximum:
maxindex = i
if nums[i] != maximum and maximum < 2 * (nums[i]):
return -1
return maxindex
ob = Solution()
print(ob.dominantIndex([3, 6, 1, 0]))
इनपुट
[3, 6, 1, 0]
आउटपुट
1