diff --git a/cs/unique-paths.cs b/cs/unique-paths.cs new file mode 100644 index 0000000..bb702be --- /dev/null +++ b/cs/unique-paths.cs @@ -0,0 +1,25 @@ +public class Solution { + private static int Right(List row, int size, int idx) { + if (idx >= size) { + return 0; + } + + return row[idx]; + } + + public int UniquePaths(int m, int n) { + var bottom = new List(Enumerable.Repeat(1, n)); + + for (var y = m - 2; y >= 0; --y) { + var above = new List(Enumerable.Repeat(0, n)); + + for (var x = n - 1; x >= 0; --x) { + above[x] = Right(above, n, x + 1) + bottom[x]; + } + + bottom = above; + } + + return bottom[0]; + } +}