《LeetCode力扣练习》第64题 最小路径和 Java
《LeetCode力扣练习》第64题 最小路径和 Java
一、资源
题目:
给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。
说明:每次只能向下或者向右移动一步。
示例 1:
输入:grid = [[1,3,1],[1,5,1],[4,2,1]]
输出:7
解释:因为路径 1→3→1→1→1 的总和最小。示例 2:
输入:grid = [[1,2,3],[4,5,6]]
输出:12提示:
m == grid.length n == grid[i].length 1 <= m, n <= 200 0 <= grid[i][j] <= 100
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-path-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。超时的回溯法
/*** Created with IntelliJ IDEA.** @author : DuZhenYang* @version : 2022.03.01 18:01:48* description :*/ public class LeetCode {private int result = Integer.MAX_VALUE;private int right = 1;private int down = 1;private int temp = 0;public int minPathSum(int[][] grid) {int m = grid.length;int n = grid[0].length;temp = grid[0][0];backTrack(grid, m, n);return result;}private void backTrack(int[][] grid, int m, int n) {if (right == n && down == m) {result = Integer.min(result, temp);return;}if (right < n) {right++;temp += grid[down - 1][right - 1];backTrack(grid, m, n);temp -= grid[down - 1][right - 1];right--;}if (down < m) {down++;temp += grid[down - 1][right - 1];backTrack(grid, m, n);temp -= grid[down - 1][right - 1];down--;}} }
上代码(经过线上OJ测试)
/*** Created with IntelliJ IDEA.** @author : DuZhenYang* @version : 2022.03.01 18:01:48* description :*/ public class LeetCode {public int minPathSum(int[][] grid) {int m = grid.length;int n = grid[0].length;int[][] result = new int[m][n];result[0][0] = grid[0][0];for (int i = 1; i < m; i++) {result[i][0] = grid[i][0] + result[i - 1][0];}for (int i = 1; i < n; i++) {result[0][i] = grid[0][i] + result[0][i - 1];}for (int row = 1; row < m; row++) {for (int col = 1; col < n; col++) {result[row][col] = Integer.min(result[row - 1][col], result[row][col - 1]) + grid[row][col];}}return result[m - 1][n - 1];} }
《LeetCode力扣练习》第64题 最小路径和 Java相关推荐
- 《LeetCode力扣练习》第155题 最小栈 Java
<LeetCode力扣练习>第155题 最小栈 Java 一.资源 题目: 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈. 实现 MinStack ...
- 《LeetCode力扣练习》剑指 Offer 11. 旋转数组的最小数字 Java
<LeetCode力扣练习>剑指 Offer 11. 旋转数组的最小数字 Java 一.资源 题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 ...
- 《LeetCode力扣练习》第31题 下一个排列 Java
<LeetCode力扣练习>第31题 下一个排列 Java 一.资源 题目: 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列. 例如,arr = [1,2,3] ,以下这些都可 ...
- 《LeetCode力扣练习》第96题 不同的二叉搜索树 Java
<LeetCode力扣练习>第96题 不同的二叉搜索树 Java 一.资源 题目: 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回 ...
- 《LeetCode力扣练习》第75题 颜色分类 Java
<LeetCode力扣练习>第75题 颜色分类 Java 一.资源 题目: 给定一个包含红色.白色和蓝色.共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按 ...
- 《LeetCode力扣练习》第62题 不同路径 Java
<LeetCode力扣练习>第62题 不同路径 Java 一.资源 题目: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 "Start" ). ...
- 《LeetCode力扣练习》第56题 合并区间 Java
<LeetCode力扣练习>第56题 合并区间 Java 一.资源 题目: 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, ...
- 《LeetCode力扣练习》第55题 跳跃游戏 Java
<LeetCode力扣练习>第55题 跳跃游戏 Java 一.资源 题目: 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 . 数组中的每个元素代表你在该位置可以跳跃的最大 ...
- 《LeetCode力扣练习》第617题 合并二叉树 Java
<LeetCode力扣练习>第617题 合并二叉树 Java 一.资源 题目: 给你两棵二叉树: root1 和 root2 . 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些 ...
最新文章
- 【Codeforces】967C Stairs and Elevators (二分)。
- 计算机网络与应用测试题,计算机网络技术与应用测试题
- C++/GO/多媒体方向
- 道路交通实时流量监控预测系统(大讲台)
- springboot 接口404_资深架构带你学习Springboot集成普罗米修斯
- 使用相同的原计算机名新建DDC加入原有站点报错
- fastText、TextCNN、TextRNN……这里有一套NLP文本分类深度学习方法库供你选择
- vb.net怎么和mysql连接_解析VB.NET如何连接数据库
- springboot集成kettle9
- 计算机视觉——图像检索与识别
- java使用keytool 的ssl证书的导入、查看与删除——彻底解决unable to find valid certification path to requested target(好文章!)
- Utgard连接OPC Server常见故障码及解决方案
- Google工具包Guava——聊聊代码校验Preconditions
- android 颜色color.xml文件及部分中英文对照
- 文件服务器如何异地备份,实战演示如何进行异地自动备份数据库
- 服务器故障英文邮件,全球邮
- 教你怎么不添加付款方式订阅苹果arcade
- Matlab 绘图画出y=sin(x)在[0,2*PI]上的图像
- C:1094统计元音(函数专题)
- 时间序列多步预测的五种策略
热门文章
- mysql相关操作_mysql相关操作(2)
- linux管理用户组,技术|如何在 Linux 系统中通过用户组来管理用户
- 语音识别数据集的处理在训练之前
- 安卓和ios抓包神器
- Mysql学习总结(3)——MySql语句大全:创建、授权、查询、修改等
- Netflix CEO哈斯廷斯:内容为王 公司潜力依然巨大
- SQLiteOpenHelper类
- mybatis学习笔记(7)-输出映射
- Windows 2003 标准版_企业版_SP1_SP2_R2的区别
- 100w个整数中,每个数各不相同,且都小于100w,问如何快速的排序