projEuler15.ts

This commit is contained in:
Andrew Morris
2022-05-31 18:13:10 +10:00
parent e3a5eff7dc
commit 6e6ceb24c5

View File

@@ -0,0 +1,32 @@
export default function main() {
let rc = new RouteCalculator();
return rc.calculate(20, 20);
}
class RouteCalculator {
cache: number[][];
constructor() {
this.cache = [];
}
calculate(i: number, j: number) {
if (i < 0 || j < 0) {
return 0;
}
if (i === 0 && j === 0) {
return 1;
}
this.cache[i] ??= [];
let result = this.cache[i][j];
if (result === undefined) {
result = this.calculate(i - 1, j) + this.calculate(i, j - 1);
this.cache[i][j] = result;
}
return result;
}
}