프로그램 개발/미분류

[LeetCode/Python/Java]Array and String - Largest Number At Least Twice of Others

(ㅇㅅㅎ) 2020. 8. 21. 15:56
728x90
반응형

문제

In a given integer array nums, there is always exactly one largest element.

Find whether the largest element in the array is at least twice as much as every other number in the array.

If it is, return the index of the largest element, otherwise return -1.

 

배열 안의 최댓값이 다른 모든 값보다 2배 이상일 경우 최댓값의 인덱스를 찾아서 리턴하고 아닐 경우는 -1을 리턴합니다.

 

예를 들어 배열 A가 [3, 6, 1, 0]일 경우 최댓값 6이 다른 값들보다 2배 이상이기 때문에 1을 리턴합니다.

배열 B가 [1, 2, 3, 4]일 경우 최댓값 4가 3의 2배 이상이지 않기 때문에 -1을 리턴합니다.

 

코드를 보시려면 더보기를 클릭해 주세요.

더보기

파이썬 코드

class Solution:
    def dominantIndex(self, nums: List[int]) -> int:
        for i in nums:
            if max(nums) < i*2 and max(nums) != i:
                return -1
        return nums.index(max(nums))

 

자바 코드

자바 코드는 Solution에 있는 풀이 부분을 가져온 것입니다.

class Solution {
    public int dominantIndex(int[] nums) {
        int maxIndex = 0;
        for (int i = 0; i < nums.length++i) {
            if (nums[i] > nums[maxIndex])
                maxIndex = i;
        }
        for (int i = 0; i < nums.length++i) {
            if (maxIndex != i && nums[maxIndex] < 2 * nums[i])
                return -1;
        }
        return maxIndex;
    }
}
 

 

반응형