[Leet Code] Maximum Gap

기면지·2021년 5월 31일
0

LeetCode

목록 보기
15/20
post-thumbnail

안녕하세요. 오늘은 5월 5주차 두번째 알고리즘인 Maximum Gap 풀이를 작성해보겠습니다.


문제


요약
nums 배열을 정렬한 후에 인접한 인덱스의 gap 이 가장 큰 값을 찾아서 return하는 문제입니다.

처음 생각한 방법

간단한 문제라고 생각했습니다.
nums 를 정렬한 후에 for문을 순회하면서 가장 큰 gap 을 찾았습니다. 처음 솔루션이 Accept를 받았습니다.


코드 설명

if (nums.length < 2) return 0;

배열의 길이가 2 이하라면 gap 을 구할 수 없기 때문에 0을 return합니다.

Arrays.sort(nums);
int maxGap = 0;

배열을 정렬해준 후에, 가장 큰 gap 을 구할 변수를 선언해줍니다.

for (int i = 0; i < nums.length - 1; i++) {
    int gap = Math.abs(nums[i] - nums[i + 1]);
    if (maxGap < gap) maxGap = gap;
}

그 후에 for문을 순회하면서 Math.abs(nums[i] - nums[i + 1]) 이라는 방법으로 인접한 인덱스 값의 gap 을 절대값 처리해줍니다.
그 후에 maxGap 보다 gap 이 크다면 maxGap 을 바꿔줍니다.

전체 코드

class Solution {
    public int maximumGap(int[] nums) {
        if (nums.length < 2) return 0;

        Arrays.sort(nums);
        int maxGap = 0;
        for (int i = 0; i < nums.length - 1; i++) {
            int gap = Math.abs(nums[i] - nums[i + 1]);
            if (maxGap < gap) maxGap = gap;
        }

        return maxGap;
    }
}

마무리

어제 풀었던 퀸 문제보다 훨씬 간단하게 풀었습니다.
이번 포스팅도 읽어주셔서 감사합니다 :)

profile
𝙎𝙈𝘼𝙇𝙇 𝙎𝙏𝙀𝙋𝙎 𝙀𝙑𝙀𝙍𝙔 𝘿𝘼𝙔

0개의 댓글