TheAlgorithms/C-Sharp · error
Coins array cannot be empty
Error message
Coins array cannot be empty {nameof(coinsAsArray)}. What it means
ValidateCoinsArray is a private validation helper invoked by GenerateSingleCoinChanges; it throws InvalidOperationException when the coins array is empty because a change-making system without denominations cannot produce any amount. The faulting input is the empty coins array.
Solutions
- Pass a non-empty denominations array containing at least the coin of value 1, which this solver also requires.
- Guard the call site: check coinsArray.Length > 0 before invoking GenerateSingleCoinChanges and surface a clear message instead.
- Fix the upstream deserialization/conversion that produced an empty coin set.
When it happens
Trigger: Thrown at Algorithms/Problems/DynamicProgramming/CoinChange/DynamicCoinChangeSolver.cs:144 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of TheAlgorithms/C-Sharp@96e2905cab (2026-09-13).
Data as JSON: /api/errors/e88f0e48e110d4e1.
Report an issue: GitHub.
Appendix: source
Thrown at Algorithms/Problems/DynamicProgramming/CoinChange/DynamicCoinChangeSolver.cs:144
return result;
}
private static void ValidateCoin(int coin)
{
if (coin <= 0)
{
throw new InvalidOperationException($"The coin cannot be lesser or equal to zero {nameof(coin)}.");
}
}
private static void ValidateCoinsArray(int[] coinsArray)
{
var coinsAsArray = coinsArray.ToArray();
if (coinsAsArray.Length == 0)
{
throw new InvalidOperationException($"Coins array cannot be empty {nameof(coinsAsArray)}.");
}
var coinsContainOne = coinsAsArray.Any(x => x == 1);
if (!coinsContainOne)
{
throw new InvalidOperationException($"Coins array must contain coin 1 {nameof(coinsAsArray)}.");
}
var containsNonPositive = coinsAsArray.Any(x => x <= 0);
if (containsNonPositive)
{
throw new InvalidOperationException(
$"{nameof(coinsAsArray)} cannot contain numbers less than or equal to zero");
}
var containsDuplicates = coinsAsArray.GroupBy(x => x).Any(g => g.Count() > 1);View on GitHub (pinned to 96e2905cab)