From 6f8330a674c19113d4ff105ad10f2084f6170b6b Mon Sep 17 00:00:00 2001 From: zhaocchen Date: Thu, 22 Jul 2021 15:05:53 +0800 Subject: [PATCH] feat: add typescript solution to lc problem: No.0064.Minimum Path Sum --- .../0000-0099/0064.Minimum Path Sum/README.md | 24 +++++++++++++++++++ .../0064.Minimum Path Sum/README_EN.md | 24 +++++++++++++++++++ .../0064.Minimum Path Sum/Solution.ts | 19 +++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 solution/0000-0099/0064.Minimum Path Sum/Solution.ts diff --git a/solution/0000-0099/0064.Minimum Path Sum/README.md b/solution/0000-0099/0064.Minimum Path Sum/README.md index a801a435bd812..b644f0b3a771f 100644 --- a/solution/0000-0099/0064.Minimum Path Sum/README.md +++ b/solution/0000-0099/0064.Minimum Path Sum/README.md @@ -91,6 +91,30 @@ class Solution { } ``` +### **TypeScript** + +```ts +function minPathSum(grid: number[][]): number { + let m = grid.length, n = grid[0].length; + let dp = Array.from({ length: m}, v => new Array(n).fill(0)); + dp[0][0] = grid[0][0]; + for (let i = 1; i < m; ++i) { + dp[i][0] = dp[i - 1][0] + grid[i][0]; + } + for (let j = 1; j < n; ++j) { + dp[0][j] = dp[0][j - 1] + grid[0][j]; + } + // dp + for (let i = 1; i < m; ++i) { + for (let j = 1; j < n; ++j) { + let cur = grid[i][j]; + dp[i][j] = cur + Math.min(dp[i - 1][j], dp[i][j - 1]); + } + } + return dp[m - 1][n - 1]; +}; +``` + ### **C++** ```cpp diff --git a/solution/0000-0099/0064.Minimum Path Sum/README_EN.md b/solution/0000-0099/0064.Minimum Path Sum/README_EN.md index 9f6820347da37..44aaf72938d08 100644 --- a/solution/0000-0099/0064.Minimum Path Sum/README_EN.md +++ b/solution/0000-0099/0064.Minimum Path Sum/README_EN.md @@ -79,6 +79,30 @@ class Solution { } ``` +### **TypeScript** + +```ts +function minPathSum(grid: number[][]): number { + let m = grid.length, n = grid[0].length; + let dp = Array.from({ length: m}, v => new Array(n).fill(0)); + dp[0][0] = grid[0][0]; + for (let i = 1; i < m; ++i) { + dp[i][0] = dp[i - 1][0] + grid[i][0]; + } + for (let j = 1; j < n; ++j) { + dp[0][j] = dp[0][j - 1] + grid[0][j]; + } + // dp + for (let i = 1; i < m; ++i) { + for (let j = 1; j < n; ++j) { + let cur = grid[i][j]; + dp[i][j] = cur + Math.min(dp[i - 1][j], dp[i][j - 1]); + } + } + return dp[m - 1][n - 1]; +}; +``` + ### **C++** ```cpp diff --git a/solution/0000-0099/0064.Minimum Path Sum/Solution.ts b/solution/0000-0099/0064.Minimum Path Sum/Solution.ts new file mode 100644 index 0000000000000..eb6c129892a93 --- /dev/null +++ b/solution/0000-0099/0064.Minimum Path Sum/Solution.ts @@ -0,0 +1,19 @@ +function minPathSum(grid: number[][]): number { + let m = grid.length, n = grid[0].length; + let dp = Array.from({ length: m}, v => new Array(n).fill(0)); + dp[0][0] = grid[0][0]; + for (let i = 1; i < m; ++i) { + dp[i][0] = dp[i - 1][0] + grid[i][0]; + } + for (let j = 1; j < n; ++j) { + dp[0][j] = dp[0][j - 1] + grid[0][j]; + } + // dp + for (let i = 1; i < m; ++i) { + for (let j = 1; j < n; ++j) { + let cur = grid[i][j]; + dp[i][j] = cur + Math.min(dp[i - 1][j], dp[i][j - 1]); + } + } + return dp[m - 1][n - 1]; + }; \ No newline at end of file