online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
//int numOfCoins = 0; class Solution { private: int dfs(vector<int>& coins, int i , int balance) { if (balance == 0) { //cout << specificCoin << endl; return 0; } if (balance != 0 && i < 0) { cout << " return specific " << endl; return -1; } int specificCoin = 0; //int i = 0; cout << " balance " << balance << " coin " << coins[i] << " numOfCoins " << specificCoin << endl; if (coins[i] <= balance) { specificCoin = balance/coins[i]; balance = balance - (coins[i] * specificCoin); cout << " Inside balance " << balance << " coin " << coins[i] << " specificCoin " << specificCoin << endl; } cout << " specific " << specificCoin << endl; if (balance != 0 && (i-1 < 0)) { cout << " 2 specific " << specificCoin << endl; specificCoin = 0; } specificCoin += dfs(coins, i-1, balance); cout << "DFS is done " << specificCoin << endl; return specificCoin; } public: int coinChange(vector<int>& coins, int amount) { if (amount < 0 || coins.size() < 1 || coins.size() > 12) { return -1; } for (int i = coins.size() -1; i >= 0; i--) { if (coins[i] < 1 || coins[i] > 2147483647) { return -1; } } int balance = amount; int numOfCoins = 0, specificCoin = 0, minCoins = 0; sort(coins.begin(), coins.end()); for (int i = 0; i< coins.size(); i++) { numOfCoins = balance/coins[i]; specificCoin = balance/coins[i]; balance = balance - (coins[i] * specificCoin); numOfCoins += dfs(coins, (coins.size() -1), balance); if (minCoins > numOfCoins) { minCoins = numOfCoins; } numOfCoins = 0; } return minCoins; } }; #if 0 Testcases [1, 2, 5] 27 [2, 5, 10, 1] 11 //return -1 for balance != 0 [2] 3 // if not sorted [2, 5, 10, 1] 27 #endif

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue