Giả sử chúng ta có một mảng số nguyên được gọi là nums, lúc này luôn có đúng một phần tử lớn nhất. Chúng ta phải kiểm tra xem phần tử lớn nhất trong mảng có ít nhất gấp đôi mọi số khác trong mảng hay không. Nếu đúng như vậy, thì chúng ta phải tìm chỉ số của phần tử lớn nhất, nếu không thì trả về -1.
Vì vậy, nếu đầu vào là [3,6,1,0], thì đầu ra sẽ là 1, vì 6 là số lớn nhất và với mọi số khác trong mảng x, 6 lớn hơn x hai lần . Vì chỉ số của 6 là 1, thì đầu ra cũng là 1.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- tối đa:=tối đa là nums
- đối với tôi trong phạm vi từ 0 đến kích thước là num, hãy thực hiện
- nếu nums [i] bằng với giá trị tối đa thì
- maxindex:=i
- nếu nums [i] không giống với tối đa và tối đa <2 * (nums [i]), thì
- trả về -1
- nếu nums [i] bằng với giá trị tối đa thì
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
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]))
Đầu vào
[3, 6, 1, 0]
Đầu ra
1