Skip to content

Commit 4fdec57

Browse files
.
1 parent 32f3297 commit 4fdec57

File tree

2 files changed

+45
-3
lines changed

2 files changed

+45
-3
lines changed

Algorithms/Medium_Algorithms.Tests/UnitTest1.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -672,10 +672,17 @@ public void NumberOfWaysToMakeChange()
672672
{
673673
int[] input = { 1, 5 };
674674
Assert.True(NumberOfWaysToMakeChangeClass.NumberOfWaysToMakeChange(6, input) == 2);
675-
}
675+
}
676676
#endregion
677677

678-
678+
#region MinNumberOfCoinsForChange
679+
[Fact]
680+
public void MinNumberOfCoinsForChangeTestCase1()
681+
{
682+
int[] input = { 1, 5, 10 };
683+
Assert.True(MinNumberOfCoinsForChangeClass.MinNumberOfCoinsForChange(7, input) == 3);
684+
}
685+
#endregion
679686

680687

681688

Algorithms/Medium_Algorithms/MediumAlgorithmsClass.cs

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1358,9 +1358,44 @@ public static int NumberOfWaysToMakeChange(int n, int[] denoms)
13581358
}
13591359
return ways[n];
13601360
}
1361-
}
1361+
}
13621362
#endregion
13631363

1364+
#region MinNumberOfCoinsForChange
1365+
/// <summary>
1366+
///
1367+
/// </summary>
1368+
public class MinNumberOfCoinsForChangeClass
1369+
{
1370+
public static int MinNumberOfCoinsForChange(int n, int[] denoms)
1371+
{
1372+
int[] numOfCoins = new int[n + 1];
1373+
Array.Fill(numOfCoins, Int32.MaxValue);
1374+
numOfCoins[0] = 0;
1375+
int toCompare = 0;
1376+
foreach (int denom in denoms)
1377+
{
1378+
for (int amount = 0; amount < numOfCoins.Length; amount++)
1379+
{
1380+
if (denom <= amount)
1381+
{
1382+
if (numOfCoins[amount - denom] == Int32.MaxValue)
1383+
{
1384+
toCompare = numOfCoins[amount - denom];
1385+
}
1386+
else
1387+
{
1388+
toCompare = numOfCoins[amount - denom] + 1;
1389+
}
1390+
numOfCoins[amount] =
1391+
Math.Min(numOfCoins[amount], toCompare);
1392+
}
1393+
}
1394+
}
1395+
return numOfCoins[n] != Int32.MaxValue ? numOfCoins[n] : -1;
1396+
}
1397+
}
1398+
#endregion
13641399

13651400

13661401

0 commit comments

Comments
 (0)