【Hot100】LeetCode—64. 最小路径和

server/2024/10/22 17:30:28/

目录

  • 1- 思路
    • 题目识别
    • 动规五部曲
  • 2- 实现
    • 64. 最小路径和——题解思路
  • 3- ACM 实现


  • 原题链接:64. 最小路径和

1- 思路

题目识别

  • 识别1 :给一个二维数组 grid,每次只能向下或者向右移动一步
  • 识别2:求移动到右下角的最小路径和

动规五部曲

求的是路径的和,与不同路径的区别在于是否加上当前 grid[i][j] 的值


2- 实现

64. 最小路径和——题解思路

在这里插入图片描述

class Solution {public int minPathSum(int[][] grid) {// 1. 定义 dp 数组int m = grid.length;int n = grid[0].length;int[][] dp = new int[grid.length][grid[0].length];// 2.递推公式// dp[i][j] = Math.min(dp[i-1][j]+grid[i][j],dp[i][j-1]+grid[i][j]);// 3.初始化dp[0][0] = grid[0][0];for(int i = 1 ; i < m ; i++){dp[i][0] = dp[i-1][0] + grid[i][0];}for(int j = 1 ; j < n ;j++){dp[0][j] += dp[0][j-1] + grid[0][j];}// 4.遍历for(int i = 1 ; i < m;i++){for(int j = 1;j<n;j++){dp[i][j] = Math.min(dp[i-1][j]+grid[i][j],dp[i][j-1]+grid[i][j]);}}return dp[m-1][n-1];}
}

3- ACM 实现

public class minPath {public static int minPathSum(int[][] grid) {// 1. 定义 dp 数组int m = grid.length;int n = grid[0].length;int[][] dp = new int[grid.length][grid[0].length];// 2.递推公式// dp[i][j] = Math.min(dp[i-1][j]+grid[i][j],dp[i][j-1]+grid[i][j]);// 3.初始化dp[0][0] = grid[0][0];for(int i = 1 ; i < m ; i++){dp[i][0] = dp[i-1][0] + grid[i][0];}for(int j = 1 ; j < n ;j++){dp[0][j] += dp[0][j-1] + grid[0][j];}// 4.遍历for(int i = 1 ; i < m;i++){for(int j = 1;j<n;j++){dp[i][j] = Math.min(dp[i-1][j]+grid[i][j],dp[i][j-1]+grid[i][j]);}}return dp[m-1][n-1];}public static void main(String[] args) {Scanner sc = new Scanner(System.in);String input = sc.nextLine();input = input.substring(2,input.length()-2);String[] parts = input.split("],\\[");int[][] grid = new int[parts.length][parts[0].split(",").length];int rowI = 0;for(String str:parts){String[] row = str.split(",");for(int i = 0 ; i < row.length;i++ ){grid[rowI][i] = Integer.parseInt(row[i]);}rowI++;}System.out.println("结果是"+minPathSum(grid));}
}

http://www.ppmy.cn/server/116109.html

相关文章

STM32G070 CubeMX配置多通道/单通道ADC+DMA流程 LL库

基础配置不再赘述&#xff0c;时钟这些根据硬件来配置 多通道ADCDMA配置图&#xff1a; 程序配置&#xff1a; 调试查看内存数据&#xff0c;硬件上将PA1接到GND&#xff0c;PA2接到3V3 采集的数据会循环覆盖内存 问题&#xff1a;代码里先初始化ADC_IN1&#xff0c;再初…

C语言代码练习(第十八天)

今日练习&#xff1a; 48、猴子吃桃问题。猴子第1天摘下若干个桃子&#xff0c;当即吃了一半&#xff0c;还不过瘾&#xff0c;又多吃了一个。第2天早上又将剩下的桃子吃掉一半&#xff0c;又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时&…

二叉树和堆概念

二叉树概念 一棵二叉树是结点的一个有限集合&#xff0c;该集合或者为空&#xff0c;或者是由一个根节点加上两棵别称为左子树和右子树 的二叉树组成。 二叉树的特点&#xff1a; 每个结点最多有两棵子树&#xff0c;即二叉树不存在度大于2的结点。二叉树的子树有左右之分&…

【HarmonyOS】鸿蒙头像上传-(编辑个人信息页- 头像上传)+实时数据更新

#效果图 #思路 ##步骤&#xff1a; ###一、利用picker api选择1张图片 实例化选择器参数(使用new PhotoSelectOptions())实例化图片选择器 (使用newPhotoViewPicker() )调用图片选择器的select方法传入选择器参数完成图片选取获得结果 利用picker api选择1张图片 async sele…

Web入门-08.Tomcat-基本使用

一.Tomcat的基本使用 二.Tomcat使用时的常见问题 Tomcat默认占用8080端口 如果占用8080端口的进程不方便被关闭掉&#xff0c;那么便配置Tomcat端口号(conf/server.xml) 三.Tomcat部署项目

『 Linux 』协议的定制

文章目录 协议的概念序列化和反序列化网络计算器套接字接口的封装服务端大致框架协议的定制Request的序列化与反序列化Response的序列化与反序列化报头的封装的解包网络服务服务端的封装已提取报文的移除客户端的封装客户端的调用服务端接收多个请求 JSON 自动序列化反序列化使…

c++静态变量 静态函数

有没有一个属性c是所有变量都有的 -静态成员变量 站在 类和对象 的关系区向&#xff1a; 静态函数只能使用静态变量 是用不了普通变量 分不清那个函数 #include<iostream> using namespace std;class BB { public:int getC(){cout << "c: " <<…

vue3.x项目使用高德地图JS API 2.0

该篇文章主要讲述项目中某个需求中对高德地图JS API的相关使用&#xff0c;截取部分代码用作API使用示例&#xff0c;代码并不完整&#xff0c;可酌情参考 vue3.x项目使用高德地图JS API 2.0 1.API加载函数 // 需先安装依赖包&#xff1a;npm i amap/amap-jsapi-loader --sav…