diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-02-20 01:18:05 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-20 01:18:05 +0000 |
| commit | 2102fa481829f30d4e6ec37d04fa77f87e7e9a50 (patch) | |
| tree | 158db5e61a8ba4e27e57b0feb52c6673a65af476 /challenge-100/paulo-custodio/lua/ch-2.lua | |
| parent | 468bc290d602b49bc9c51d8905d7e389e931806e (diff) | |
| parent | 798c5692eb4c43474a1ba230bb93f9fdfc3fd311 (diff) | |
| download | perlweeklychallenge-club-2102fa481829f30d4e6ec37d04fa77f87e7e9a50.tar.gz perlweeklychallenge-club-2102fa481829f30d4e6ec37d04fa77f87e7e9a50.tar.bz2 perlweeklychallenge-club-2102fa481829f30d4e6ec37d04fa77f87e7e9a50.zip | |
Merge pull request #3576 from pauloscustodio/paulo-custodio
Paulo Custodio
Diffstat (limited to 'challenge-100/paulo-custodio/lua/ch-2.lua')
| -rw-r--r-- | challenge-100/paulo-custodio/lua/ch-2.lua | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/challenge-100/paulo-custodio/lua/ch-2.lua b/challenge-100/paulo-custodio/lua/ch-2.lua index c8da806390..9f917fe53a 100644 --- a/challenge-100/paulo-custodio/lua/ch-2.lua +++ b/challenge-100/paulo-custodio/lua/ch-2.lua @@ -7,7 +7,7 @@ You are given triangle array. Write a script to find the minimum path sum from top to bottom. -When you are on index i on the current row then you may move to either +When you are on index i on the current row then you may move to either index i or index i + 1 on the next row. Example 1: @@ -48,32 +48,32 @@ The minimum path sum from top to bottom: 3 + 1 + 2 + 1 = 7 triangle = {} -function add_row(row, text) - rows = row - table.insert(triangle, {}) - for i=1, row do - local s, e = string.find(text, "(%d+)") - local n = tonumber(string.sub(text, s, e)) - text = string.sub(text, e+1, -1) - table.insert(triangle[row], n) - end +function add_row(row, text) + rows = row + table.insert(triangle, {}) + for i=1, row do + local s, e = string.find(text, "(%d+)") + local n = tonumber(string.sub(text, s, e)) + text = string.sub(text, e+1, -1) + table.insert(triangle[row], n) + end end function min_sum(sum, row, col) - sum = sum or 0 - row = row or 1 - col = col or 1 - sum = sum + triangle[row][col] - if row == rows then - return sum - else - local sum1 = min_sum(sum, row+1, col) - local sum2 = min_sum(sum, row+1, col+1) - return math.min(sum1, sum2) - end + sum = sum or 0 + row = row or 1 + col = col or 1 + sum = sum + triangle[row][col] + if row == rows then + return sum + else + local sum1 = min_sum(sum, row+1, col) + local sum2 = min_sum(sum, row+1, col+1) + return math.min(sum1, sum2) + end end - + for i=1, #arg do - add_row(i, arg[i]) + add_row(i, arg[i]) end io.write(min_sum(), "\n") |
