Untitled

 avatar
unknown
plain_text
2 months ago
1.3 kB
2
Indexable
import java.util.TreeSet;

public class Solution {
    public int minAbsoluteDifference(int[] nums, int x) {
        TreeSet<Integer> rightWindowSet = new TreeSet<>();
        int minDiff = Integer.MAX_VALUE;
        
        // Traverse the array from right to left, starting from nums.length - x - 1
        for (int i = nums.length - x - 1; i >= 0; i--) {
           
            rightWindowSet.add(nums[i + x]);

            Integer ceil = rightWindowSet.ceiling(nums[i]);
            if (lower != null) {
                minDiff = Math.min(minDiff, Math.abs(nums[i] - ceil));
            }

            Integer floor = rightWindowSet.floor(nums[i]);
            if (higher != null) {
                minDiff = Math.min(minDiff, Math.abs(nums[i] - floor));
            }
            
        }
        
        return minDiff;
    }

    public static void main(String[] args) {
        Solution solution = new Solution();
        
        // Test cases
        System.out.println(solution.minAbsoluteDifference(new int[]{4, 3, 2, 4}, 2)); // Output: 0
        System.out.println(solution.minAbsoluteDifference(new int[]{5, 3, 2, 10, 15}, 1)); // Output: 1
        System.out.println(solution.minAbsoluteDifference(new int[]{1, 2, 3, 4}, 3)); // Output: 3
    }
}
Editor is loading...
Leave a Comment