코딩복습장

LeetCode: Maximum Gap 본문

코딩 테스트/python(파이썬)

LeetCode: Maximum Gap

코복장 2025. 5. 31. 23:26
728x90

Given an integer array nums, return the maximum difference between two successive elements in its sorted form. If the array contains less than two elements, return 0.

You must write an algorithm that runs in linear time and uses linear extra space.

 

Example 1:

Input: nums = [3,6,9,1]
Output: 3
Explanation: The sorted form of the array is [1,3,6,9], either (3,6) or (6,9) has the maximum difference 3.

Example 2:

Input: nums = [10]
Output: 0
Explanation: The array contains less than 2 elements, therefore return 0.

 

Constraints:

  • 1 <= nums.length <= 105
  • 0 <= nums[i] <= 109

 

한 문제를 풀어보았다. 

 

난이도가 medium 이길래 생각보다 오래 걸릴 것이라고 생각했지만, 너무 쉽게 풀렸다.

 

푸는 방법은 매우 간단하다. 

 

list를 정렬하고, 정렬된 list에서 연속된 숫자의 차이 절댓값을 계속 비교해나가면 된다. 

 


구현코드

 

class Solution(object):
    def maximumGap(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        if len(nums) <= 1:
            return 0

        nums.sort()
        
        res = 0
        for i in range(1, len(nums)):
            if res < abs(nums[i-1] - nums[i]):
                res = abs(nums[i-1] - nums[i])

        return res
728x90
Comments