[LeetCode] Largest Number At Least Twice of Others

아르당·2026년 2월 22일

LeetCode

목록 보기
165/261
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

가장 큰 정수는 고유한 정수 배열 nums가 주어진다.

배열에서 가장 큰 요소의 크기가 배열의 다른 모든 요소의 크기의 두 배 이상인지 확인해라. 만약 그렇지않다면 가장 큰 요소의 인덱스를 반환하고, 그렇지 않다면 -1을 반환해라.

Example

#1
Input: nums = [3, 6, 1, 0]
Output: 1
Explanation: 6은 가장 큰 정수이다.
배열 x에 있는 다른 모든 숫자에 대해 6은 x보다 적어도 두 배 크다.
6의 인덱스는 1이므로 1을 반환한다.

#2
Input: nums = [1, 2, 3, 4]
Output: -1
Explanation: 4는 3의 두 배보다 작으므로 -1을 반환한다.

Constraints

  • 2 <= nums.length <= 50
  • 0 <= nums[i] <= 100
  • nums에서 가장 큰 요소는 고유하다.

Solved

class Solution {
    public int dominantIndex(int[] nums) {
        int max = -1;
        int index = -1;
        int second = -1;

        for(int i = 0; i < nums.length; i++){
            if(nums[i] > max){
                second = max;
                max = nums[i];
                index = i;
            }else if(nums[i] > second){
                second = nums[i];
            }
        }

        return second * 2 <= max ? index : -1;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글