int res = INT_MAX;voiddfs(vector<int>&coins,intamount,intcurrentCoin=0,intstep=0){if(amount ==0) res =min(res, step);elseif(amount >0)for(int i = currentCoin; i <coins.size(); i++)dfs(coins, amount -coins[i], i, step +1);}intcoinChange(vector<int>&coins,intamount){dfs(coins, amount);return(res == INT_MAX ?-1: res);}