26 lines
592 B
C#
26 lines
592 B
C#
|
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];
|
||
|
}
|
||
|
}
|