java.lang.Object
g2901_3000.s2966_divide_array_into_arrays_with_max_difference.Solution

public class Solution extends java.lang.Object
2966 - Divide Array Into Arrays With Max Difference.

Medium

You are given an integer array nums of size n and a positive integer k.

Divide the array into one or more arrays of size 3 satisfying the following conditions:

  • Each element of nums should be in exactly one array.
  • The difference between any two elements in one array is less than or equal to k.

Return a 2D array containing all the arrays. If it is impossible to satisfy the conditions, return an empty array. And if there are multiple answers, return any of them.

Example 1:

Input: nums = [1,3,4,8,7,9,3,5,1], k = 2

Output: [[1,1,3],[3,4,5],[7,8,9]]

Explanation: We can divide the array into the following arrays: [1,1,3], [3,4,5] and [7,8,9]. The difference between any two elements in each array is less than or equal to 2. Note that the order of elements is not important.

Example 2:

Input: nums = [1,3,3,2,7,3], k = 3

Output: []

Explanation: It is not possible to divide the array satisfying all the conditions.

Constraints:

  • n == nums.length
  • 1 <= n <= 105
  • n is a multiple of 3.
  • 1 <= nums[i] <= 105
  • 1 <= k <= 105
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    int[][]
    divideArray(int[] nums, int k)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Solution

      public Solution()
  • Method Details

    • divideArray

      public int[][] divideArray(int[] nums, int k)