aboutsummaryrefslogtreecommitdiff
path: root/partition_arr_max_diff_k.py
diff options
context:
space:
mode:
authorJack Sangdahl <[email protected]>2025-06-18 20:48:11 -0600
committerJack Sangdahl <[email protected]>2025-06-18 20:48:11 -0600
commitd164977cebec7be669ff3c0beb9703b89efbb6b2 (patch)
treeabc6078d897b9c609e7aaf000fb454567f32fcf6 /partition_arr_max_diff_k.py
parentf2349693f5c352357a135454fde298f109b2198a (diff)
downloadleetcode-d164977cebec7be669ff3c0beb9703b89efbb6b2.tar.gz
leetcode-d164977cebec7be669ff3c0beb9703b89efbb6b2.zip
2294. partition array such that maximum difference is k
Diffstat (limited to 'partition_arr_max_diff_k.py')
-rw-r--r--partition_arr_max_diff_k.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/partition_arr_max_diff_k.py b/partition_arr_max_diff_k.py
new file mode 100644
index 0000000..555cdf9
--- /dev/null
+++ b/partition_arr_max_diff_k.py
@@ -0,0 +1,34 @@
+# 2294. Partition Array Such That Maximum Difference Is K
+
+"""
+you are given an integer array 'nums' and an integer 'k'. you may partition
+'nums' into one or more subsequences such that each element in 'nums' appears
+in exactly one of the subsequences. return the minimum number of subsequences
+needed such that the difference between the maximum and minimum values in
+each subsequence is at most 'k'. a subsequence is a sequence that can be
+derived from another sequence by deleting some or no elements without
+changing the order of the remaining elements.
+"""
+
+
+class Solution(object):
+ def partitionArray(self, nums, k):
+ """
+ :type nums: List[int]
+ :type k: int
+ :rtype: int
+ """
+ nums.sort()
+ ans, j = 1, 0
+ for i in range(len(nums)):
+ if nums[i] - nums[j] > k:
+ ans += 1
+ j = i
+ return ans
+
+
+if __name__ == "__main__":
+ obj = Solution()
+ print(obj.partitionArray(nums=[3, 6, 1, 2, 5], k=2))
+ print(obj.partitionArray(nums=[1, 2, 3], k=1))
+ print(obj.partitionArray(nums=[2, 2, 4, 5], k=0))