From 4bca22a75925700bba822ab8c51502bdafdd0e7d Mon Sep 17 00:00:00 2001 From: yuanguangxin <274841922@qq.com> Date: Thu, 26 Mar 2020 21:53:09 +0800 Subject: [PATCH] add q64 --- .idea/workspace.xml | 32 +++++++++---------- README.md | 1 + .../q64_最小路径和/Solution.java | 26 +++++++++++++++ 3 files changed, 43 insertions(+), 16 deletions(-) create mode 100644 src/动态规划/q64_最小路径和/Solution.java diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 73d0dc3..1720150 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,7 +2,7 @@ - + @@ -264,14 +264,7 @@ - - - - 1580496640692 - 1580585083883 @@ -609,7 +602,14 @@ - @@ -662,7 +662,6 @@ - @@ -687,7 +686,8 @@ - @@ -702,10 +702,10 @@ - + - + @@ -760,10 +760,10 @@ - + - + diff --git a/README.md b/README.md index 3431465..225f361 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,7 @@ * [q5_最长回文子串](/src/动态规划/q5_最长回文子串) * [q53_最大子序和](/src/动态规划/q53_最大子序和) +* [q64_最小路径和](/src/动态规划/q64_最小路径和) * [q70_爬楼梯](/src/动态规划/q70_爬楼梯) * [q118_杨辉三角](/src/动态规划/q118_杨辉三角) * [q300_最长上升子序列](/src/动态规划/q300_最长上升子序列) diff --git a/src/动态规划/q64_最小路径和/Solution.java b/src/动态规划/q64_最小路径和/Solution.java new file mode 100644 index 0000000..8dd994b --- /dev/null +++ b/src/动态规划/q64_最小路径和/Solution.java @@ -0,0 +1,26 @@ +package 动态规划.q64_最小路径和; + +/** + * 动态规划 dp(j)=grid(i,j)+min(dp(j),dp(j+1)) o(m*n) + */ +public class Solution { + + public int minPathSum(int[][] grid) { + int[] dp = new int[grid[0].length]; + for (int i = grid.length - 1; i >= 0; i--) { + for (int j = grid[0].length - 1; j >= 0; j--) { + if (i == grid.length - 1 && j != grid[0].length - 1) { + dp[j] = grid[i][j] + dp[j + 1]; + } else if (j == grid[0].length - 1 && i != grid.length - 1) { + dp[j] = grid[i][j] + dp[j]; + } else if (j != grid[0].length - 1 && i != grid.length - 1) { + dp[j] = grid[i][j] + Math.min(dp[j], dp[j + 1]); + + } else { + dp[j] = grid[i][j]; + } + } + } + return dp[0]; + } +}