• + 0 comments

    Solution in Java using a HashSet

    public static List<Integer> absolutePermutation(int n, int k) {
        // Write your code here
        var set = new HashSet<Integer>();
        for (var i = 1; i <= n; i++) {
            set.add(i);
        }
        var result = new ArrayList<Integer>();
        for (var i = 1; i <= n; i++) {
            var lowerNumber = i - k;
            var higherNumber = i + k;
            if (set.remove(lowerNumber)) {
                result.add(lowerNumber);
            } else if (set.remove(higherNumber)) {
                result.add(higherNumber);
            } else {
                return List.of(-1);
            }
        }
        return result;
    }