LeetCode/cs/unique-paths.cs

26 lines
592 B
C#
Raw Normal View History

public class Solution {
private static int Right(List<int> row, int size, int idx) {
if (idx >= size) {
return 0;
}
return row[idx];
}
public int UniquePaths(int m, int n) {
var bottom = new List<int>(Enumerable.Repeat(1, n));
for (var y = m - 2; y >= 0; --y) {
var above = new List<int>(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];
}
}