-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path120-Triangle.c
30 lines (30 loc) · 898 Bytes
/
120-Triangle.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
int minimumTotal(int** triangle, int triangleRowSize, int *triangleColSizes) {
int i, j;
for (i = 1; i < triangleRowSize; i++)
{
for (j = 0; j < triangleColSizes[i]; j++)
{
if (0 == j)
{
triangle[i][j] += triangle[i - 1][j];
}
else if (triangleColSizes[i] - 1 == j)
{
triangle[i][j] += triangle[i - 1][j - 1];
}
else
{
triangle[i][j] += (triangle[i - 1][j - 1] > triangle[i - 1][j] ? triangle[i - 1][j] : triangle[i - 1][j - 1]);
}
}
}
int min = triangle[triangleRowSize - 1][0];
for (i = 1; i < triangleColSizes[triangleRowSize - 1]; i++)
{
if (min > triangle[triangleRowSize - 1][i])
{
min = triangle[triangleRowSize - 1][i];
}
}
return min;
}