Skip to content

Partition Array

LeetCode Problem

# https://leetcode.com/problems/partition-array-such-that-maximum-difference-is-k/

from typing import List
'''
Goals is to minimize the number of groups
and maximise elements in the groups

Put all numbers on a number line : sorting
'''
class Solution:
    def partitionArray(self, nums: List[int], k: int) -> int:
        nums.sort()
        ans = 1
        min_val = nums[0]
        for i in range(1, len(nums)):
            if nums[i] - min_val > k: 
                min_val = nums[i]
                ans += 1
        return ans


s = Solution()
print(s.partitionArray(nums = [3,6,1,2,5], k = 2)) # should print 2

#[1,2,3,4,6]