public int coinChangeRecursive(int[] coins, int amount) {
        if (amount == 0) return 0;
        int res = Integer.MAX_VALUE;
        for (Integer coin : coins) {
            if (amount >= coin) {
                int locaRes = coinChangeRecursive(coins, amount - coin);
                if (locaRes != Integer.MAX_VALUE) {
                    res = Math.min(res, locaRes) + 1;
                }
            }
        }
        return res;
    }