Skip to content

Commit 6622af8

Browse files
author
Bogdan Hladiuc
committed
Day 17 Minimum Sum Triangle
1 parent fd5a27f commit 6622af8

File tree

8 files changed

+181
-2
lines changed

8 files changed

+181
-2
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<ItemGroup>
4+
<ProjectReference Include="..\..\..\Library\Library.csproj" />
5+
</ItemGroup>
6+
7+
<PropertyGroup>
8+
<TargetFramework>net6.0</TargetFramework>
9+
<ImplicitUsings>enable</ImplicitUsings>
10+
<Nullable>enable</Nullable>
11+
</PropertyGroup>
12+
13+
</Project>
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
using Library;
2+
3+
namespace Formation {
4+
5+
public class MinimumSumTriangle {
6+
public static void Run() {
7+
var triangle = new int[4][] {
8+
// new int[] { 2 },
9+
// new int[] { 3, 4 },
10+
// new int[] { 6, 5, 7 },
11+
// new int[] { 4, 1, 8, 3 }
12+
new int[] { 1 },
13+
new int[] { 4, 3 },
14+
new int[] { 7, 6, 5 },
15+
new int[] { 4, 1, 8, 3 }
16+
};
17+
18+
AssortedMethods.PrintInt2DArray(triangle);
19+
var result = Solution(triangle);
20+
Console.WriteLine(result);
21+
22+
result = Solution(triangle);
23+
Console.WriteLine(result);
24+
}
25+
26+
private static int Solution1(int[][] triangle) {
27+
for (var row = triangle.Length - 2; row >= 0; row--) {
28+
for (var col = 0; col <= row; col++) {
29+
var bestBelow = Math.Min(triangle[row + 1][col], triangle[row + 1][col + 1]);
30+
31+
triangle[row][col] += bestBelow;
32+
}
33+
}
34+
35+
return triangle[0][0];
36+
}
37+
38+
private static int Solution(int[][] triangle) {
39+
int result = 0;
40+
41+
if (triangle.Length == 0) {
42+
return result;
43+
}
44+
45+
int i = 1;
46+
result = triangle[0][0];
47+
int j = 0;
48+
49+
while (i < triangle.Length) {
50+
if (j == triangle[i].Length - 1) {
51+
result += triangle[i][j];
52+
i++;
53+
continue;
54+
}
55+
56+
if (triangle[i][j] <= triangle[i][j + 1]) {
57+
result += triangle[i][j];
58+
} else {
59+
result += triangle[i][j + 1];
60+
j++;
61+
}
62+
i++;
63+
}
64+
65+
return result;
66+
}
67+
}
68+
}

LeetcodeNew.sln

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Day_15_N_Queen", "Formation
117117
EndProject
118118
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Day_16_DaysToHigherTemp", "Formation\21_Days_Challenge\Day_16_DaysToHigherTemp\Day_16_DaysToHigherTemp.csproj", "{EF93630C-749B-4505-8CAA-29219F8AF5F3}"
119119
EndProject
120+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Day_17_Minimum_Sum_Triangle", "Formation\21_Days_Challenge\Day_17_Minimum_Sum_Triangle\Day_17_Minimum_Sum_Triangle.csproj", "{C4C60E4F-3C29-4890-A838-5D3A307D3BEE}"
121+
EndProject
120122
Global
121123
GlobalSection(SolutionConfigurationPlatforms) = preSolution
122124
Debug|Any CPU = Debug|Any CPU
@@ -790,6 +792,18 @@ Global
790792
{EF93630C-749B-4505-8CAA-29219F8AF5F3}.Release|x64.Build.0 = Release|Any CPU
791793
{EF93630C-749B-4505-8CAA-29219F8AF5F3}.Release|x86.ActiveCfg = Release|Any CPU
792794
{EF93630C-749B-4505-8CAA-29219F8AF5F3}.Release|x86.Build.0 = Release|Any CPU
795+
{C4C60E4F-3C29-4890-A838-5D3A307D3BEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
796+
{C4C60E4F-3C29-4890-A838-5D3A307D3BEE}.Debug|Any CPU.Build.0 = Debug|Any CPU
797+
{C4C60E4F-3C29-4890-A838-5D3A307D3BEE}.Debug|x64.ActiveCfg = Debug|Any CPU
798+
{C4C60E4F-3C29-4890-A838-5D3A307D3BEE}.Debug|x64.Build.0 = Debug|Any CPU
799+
{C4C60E4F-3C29-4890-A838-5D3A307D3BEE}.Debug|x86.ActiveCfg = Debug|Any CPU
800+
{C4C60E4F-3C29-4890-A838-5D3A307D3BEE}.Debug|x86.Build.0 = Debug|Any CPU
801+
{C4C60E4F-3C29-4890-A838-5D3A307D3BEE}.Release|Any CPU.ActiveCfg = Release|Any CPU
802+
{C4C60E4F-3C29-4890-A838-5D3A307D3BEE}.Release|Any CPU.Build.0 = Release|Any CPU
803+
{C4C60E4F-3C29-4890-A838-5D3A307D3BEE}.Release|x64.ActiveCfg = Release|Any CPU
804+
{C4C60E4F-3C29-4890-A838-5D3A307D3BEE}.Release|x64.Build.0 = Release|Any CPU
805+
{C4C60E4F-3C29-4890-A838-5D3A307D3BEE}.Release|x86.ActiveCfg = Release|Any CPU
806+
{C4C60E4F-3C29-4890-A838-5D3A307D3BEE}.Release|x86.Build.0 = Release|Any CPU
793807
EndGlobalSection
794808
GlobalSection(NestedProjects) = preSolution
795809
{45EB27A3-9FBB-48ED-8C89-E0F074C02E8C} = {71C7D88B-6D5D-4E25-A275-869603700831}
@@ -809,5 +823,6 @@ Global
809823
{D26F74F9-F5FA-47B9-AB82-DD5EFD2AD1FF} = {45EB27A3-9FBB-48ED-8C89-E0F074C02E8C}
810824
{BB5EC479-61DC-41AD-971F-E7D4187B172C} = {45EB27A3-9FBB-48ED-8C89-E0F074C02E8C}
811825
{EF93630C-749B-4505-8CAA-29219F8AF5F3} = {45EB27A3-9FBB-48ED-8C89-E0F074C02E8C}
826+
{C4C60E4F-3C29-4890-A838-5D3A307D3BEE} = {45EB27A3-9FBB-48ED-8C89-E0F074C02E8C}
812827
EndGlobalSection
813828
EndGlobal

Run/Program.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ static void Main(string[] args) {
1919
// Formation.MazeSolver.Run(); // Day 13
2020
// Formation.GeneratePassword.Run(); // Day 14
2121
// Formation.NQueen.Run(); // Day 15
22-
Formation.DaysToHigherTemp.Run(); // Day 16
22+
// Formation.DaysToHigherTemp.Run(); // Day 16
23+
Formation.MinimumSumTriangle.Run(); // Day 17
2324

2425
#endregion Formation
2526

Run/Run.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
<ProjectReference Include="..\Formation\21_Days_Challenge\Day_14_GeneratePassword\Day_14_GeneratePassword.csproj" />
5757
<ProjectReference Include="..\Formation\21_Days_Challenge\Day_15_N_Queen\Day_15_N_Queen.csproj" />
5858
<ProjectReference Include="..\Formation\21_Days_Challenge\Day_16_DaysToHigherTemp\Day_16_DaysToHigherTemp.csproj" />
59+
<ProjectReference Include="..\Formation\21_Days_Challenge\Day_17_Minimum_Sum_Triangle\Day_17_Minimum_Sum_Triangle.csproj" />
5960
</ItemGroup>
6061

6162
<PropertyGroup>

Run/obj/Run.csproj.nuget.dgspec.json

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -452,6 +452,62 @@
452452
}
453453
}
454454
},
455+
"/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Formation/21_Days_Challenge/Day_17_Minimum_Sum_Triangle/Day_17_Minimum_Sum_Triangle.csproj": {
456+
"version": "1.0.0",
457+
"restore": {
458+
"projectUniqueName": "/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Formation/21_Days_Challenge/Day_17_Minimum_Sum_Triangle/Day_17_Minimum_Sum_Triangle.csproj",
459+
"projectName": "Day_17_Minimum_Sum_Triangle",
460+
"projectPath": "/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Formation/21_Days_Challenge/Day_17_Minimum_Sum_Triangle/Day_17_Minimum_Sum_Triangle.csproj",
461+
"packagesPath": "/Users/Bogdan/.nuget/packages/",
462+
"outputPath": "/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Formation/21_Days_Challenge/Day_17_Minimum_Sum_Triangle/obj/",
463+
"projectStyle": "PackageReference",
464+
"configFilePaths": [
465+
"/Users/Bogdan/.nuget/NuGet/NuGet.Config"
466+
],
467+
"originalTargetFrameworks": [
468+
"net6.0"
469+
],
470+
"sources": {
471+
"https://api.nuget.org/v3/index.json": {}
472+
},
473+
"frameworks": {
474+
"net6.0": {
475+
"targetAlias": "net6.0",
476+
"projectReferences": {
477+
"/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Library/Library.csproj": {
478+
"projectPath": "/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Library/Library.csproj"
479+
}
480+
}
481+
}
482+
},
483+
"warningProperties": {
484+
"warnAsError": [
485+
"NU1605"
486+
]
487+
}
488+
},
489+
"frameworks": {
490+
"net6.0": {
491+
"targetAlias": "net6.0",
492+
"imports": [
493+
"net461",
494+
"net462",
495+
"net47",
496+
"net471",
497+
"net472",
498+
"net48"
499+
],
500+
"assetTargetFallback": true,
501+
"warn": true,
502+
"frameworkReferences": {
503+
"Microsoft.NETCore.App": {
504+
"privateAssets": "all"
505+
}
506+
},
507+
"runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/6.0.202/RuntimeIdentifierGraph.json"
508+
}
509+
}
510+
},
455511
"/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Formation/21_Days_Challenge/Day_1_Remove_Delete_Middle_Node_Q2095/Day_1_Remove_Delete_Middle_Node_Q2095.csproj": {
456512
"version": "1.0.0",
457513
"restore": {
@@ -3062,6 +3118,9 @@
30623118
"/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Formation/21_Days_Challenge/Day_16_DaysToHigherTemp/Day_16_DaysToHigherTemp.csproj": {
30633119
"projectPath": "/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Formation/21_Days_Challenge/Day_16_DaysToHigherTemp/Day_16_DaysToHigherTemp.csproj"
30643120
},
3121+
"/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Formation/21_Days_Challenge/Day_17_Minimum_Sum_Triangle/Day_17_Minimum_Sum_Triangle.csproj": {
3122+
"projectPath": "/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Formation/21_Days_Challenge/Day_17_Minimum_Sum_Triangle/Day_17_Minimum_Sum_Triangle.csproj"
3123+
},
30653124
"/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Formation/21_Days_Challenge/Day_1_Remove_Delete_Middle_Node_Q2095/Day_1_Remove_Delete_Middle_Node_Q2095.csproj": {
30663125
"projectPath": "/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Formation/21_Days_Challenge/Day_1_Remove_Delete_Middle_Node_Q2095/Day_1_Remove_Delete_Middle_Node_Q2095.csproj"
30673126
},

Run/obj/project.assets.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,19 @@
106106
"bin/placeholder/Day_16_DaysToHigherTemp.dll": {}
107107
}
108108
},
109+
"Day_17_Minimum_Sum_Triangle/1.0.0": {
110+
"type": "project",
111+
"framework": ".NETCoreApp,Version=v6.0",
112+
"dependencies": {
113+
"Library": "1.0.0"
114+
},
115+
"compile": {
116+
"bin/placeholder/Day_17_Minimum_Sum_Triangle.dll": {}
117+
},
118+
"runtime": {
119+
"bin/placeholder/Day_17_Minimum_Sum_Triangle.dll": {}
120+
}
121+
},
109122
"Day_1_Remove_Delete_Middle_Node_Q2095/1.0.0": {
110123
"type": "project",
111124
"framework": ".NETCoreApp,Version=v6.0",
@@ -709,6 +722,11 @@
709722
"path": "../Formation/21_Days_Challenge/Day_16_DaysToHigherTemp/Day_16_DaysToHigherTemp.csproj",
710723
"msbuildProject": "../Formation/21_Days_Challenge/Day_16_DaysToHigherTemp/Day_16_DaysToHigherTemp.csproj"
711724
},
725+
"Day_17_Minimum_Sum_Triangle/1.0.0": {
726+
"type": "project",
727+
"path": "../Formation/21_Days_Challenge/Day_17_Minimum_Sum_Triangle/Day_17_Minimum_Sum_Triangle.csproj",
728+
"msbuildProject": "../Formation/21_Days_Challenge/Day_17_Minimum_Sum_Triangle/Day_17_Minimum_Sum_Triangle.csproj"
729+
},
712730
"Day_1_Remove_Delete_Middle_Node_Q2095/1.0.0": {
713731
"type": "project",
714732
"path": "../Formation/21_Days_Challenge/Day_1_Remove_Delete_Middle_Node_Q2095/Day_1_Remove_Delete_Middle_Node_Q2095.csproj",
@@ -955,6 +973,7 @@
955973
"Day_14_GeneratePassword >= 1.0.0",
956974
"Day_15_N_Queen >= 1.0.0",
957975
"Day_16_DaysToHigherTemp >= 1.0.0",
976+
"Day_17_Minimum_Sum_Triangle >= 1.0.0",
958977
"Day_1_Remove_Delete_Middle_Node_Q2095 >= 1.0.0",
959978
"Day_2_Spiral_Traversal_Q54 >= 1.0.0",
960979
"Day_3_Reverse_Groups_of_K_Nodes_Q25 >= 1.0.0",
@@ -1053,6 +1072,9 @@
10531072
"/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Formation/21_Days_Challenge/Day_16_DaysToHigherTemp/Day_16_DaysToHigherTemp.csproj": {
10541073
"projectPath": "/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Formation/21_Days_Challenge/Day_16_DaysToHigherTemp/Day_16_DaysToHigherTemp.csproj"
10551074
},
1075+
"/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Formation/21_Days_Challenge/Day_17_Minimum_Sum_Triangle/Day_17_Minimum_Sum_Triangle.csproj": {
1076+
"projectPath": "/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Formation/21_Days_Challenge/Day_17_Minimum_Sum_Triangle/Day_17_Minimum_Sum_Triangle.csproj"
1077+
},
10561078
"/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Formation/21_Days_Challenge/Day_1_Remove_Delete_Middle_Node_Q2095/Day_1_Remove_Delete_Middle_Node_Q2095.csproj": {
10571079
"projectPath": "/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Formation/21_Days_Challenge/Day_1_Remove_Delete_Middle_Node_Q2095/Day_1_Remove_Delete_Middle_Node_Q2095.csproj"
10581080
},

Run/obj/project.nuget.cache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"version": 2,
3-
"dgSpecHash": "Vxe8xkqBkFNSpWsEqQVY+IAkAtesWQReXDD2Bm8eXe3v2DnjvFFzkXLxTxPskicUGuJSCXGSJXeiMHQsC4k2eg==",
3+
"dgSpecHash": "xgrOs1pGrp/rRycO5lu7K4qlhtsgeRIN3Nsr1h0I4eFYUAupke+cMteUTwZi9gOnd3nI5GZdbv6SYRd76vHrFw==",
44
"success": true,
55
"projectFilePath": "/Users/Bogdan/Documents/Work/CtCI/VS_Code/LeetcodeNew/Run/Run.csproj",
66
"expectedPackageFiles": [],

0 commit comments

Comments
 (0)