leetcode每日一题:62. 不同路径

news/2024/6/16 10:02:27 标签: leetcode, 算法, 动态规划, 蓝桥杯, 数据结构

系列:动态规划
语言:java
难度:中等
题目来源:Leetcode62. 不同路径
开启动态规划章节了!!欢迎您在留言和我一起完成每日打卡,以后每天8点半前发布每日一题。

原题链接:Leetcode62. 不同路径

题目

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。
问总共有多少条不同的路径?

示例 1:

> 输入:cost = [10,15,20]
输出:15
解释:你将从下标为 1 的台阶开始。
支付 15 ,向上爬两个台阶,到达楼梯顶部。
总花费为 15 。

示例 2:

输入:m = 3, n = 2
输出:3
解释:
从左上角开始,总共有 3 条路径可以到达右下角。
向右 -> 向下 -> 向下
向下 -> 向下 -> 向右
向下 -> 向右 -> 向下

示例 3:

输入:m = 7, n = 3
输出:28

示例 4:

输入:m = 3, n = 3
输出:6

约束条件:

1 <= m, n <= 100
题目数据保证答案小于等于 2 * 109

思路:

分析:动规五部曲。
1.确定dp[i][j]含义:一个二维数组,表示到达i,j这个位置的路径有多少种
2.确定递推公式:因为每次只能向下和向右,所以第dp[i][j]的位置只能由dp[i-1][j](向下的路径方法)和dp[i][j-1](向右的路径方法)合起来组成,dp[i][j] = dp[i-1][j]+dp[i][j-1];
3.初始化dp数组。对于dp[i][0]和dp[0][i]只有一种情况,表示向右和向下只有一种方式。所以规定他们都为1;
4.确定遍历顺序。 因为第i,j位置处的数只能有上面和左面的数推出,所以需要从左到右进行遍历,即一行一行从左到右进行遍历。

代码实现:

class Solution {
    public int uniquePaths(int m, int n) {
        int [][] dp = new int[m][n];
        for(int i =0;i<m;i++){
            dp[i][0] = 1;
        }
        for(int j=0;j<n;j++){
            dp[0][j] = 1;
        }
        for(int i =1;i<m;i++){
            for(int j=1;j<n;j++){
                dp[i][j] = dp[i-1][j]+dp[i][j-1];
            }
        }
        return dp[m-1][n-1];
    }
}

感谢您的阅读,希望对您有所帮助。关注我,完成每日算法自律打卡,什么时候开始都不晚!!


http://www.niftyadmin.cn/n/185929.html

相关文章

Zynq7035 指令集架构

指令集架构 ARMV7 cortexA9 由fpu 硬浮点 用的指令集为thmub2

聊聊宝马奥迪那些隐藏得深还不好找的网关(Gateway)与诊断

网关&#xff08;Gateway&#xff09;作为汽车网络系统的核心控制装置&#xff0c;主要负责不同结构和特性的数据与其他电子控制单元之间的协作转换、数据交换、故障诊断等工作。在宝马车系中&#xff0c;中央网关模块、安全和网关模块、多音频系统控制器、便捷式进入及启动系统…

K8S系列之污点和容忍度

什么污点和容忍度 污点是给node添加一个污点&#xff0c;容忍度是作用于POD的&#xff0c;可以决定pod是否可以调度到该node上&#xff0c;如果pod容忍度不匹配就不能调度的pod上。 为什么需要污点和容忍度 可以改变pod的调度策略&#xff0c;指定pod只能部署到指定的node节…

3.28日报

今天做官网上线前准备&#xff0c;提出今天上线被驳回&#xff0c;计划于明天上线。 遇到的问题&#xff1a; Date类转换Strin DateFormat dateformat new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date new Date(); String startTime dateformat.forma…

自己写gpt的软件教程-国内最好的chatgpt软件

GPT-3是一种非常强大的自然语言处理技术&#xff0c;可以为用户生成高质量的文本内容。虽然GPT-3最初是为英文而设计的&#xff0c;但是近年来&#xff0c;GPT-3在中文领域也变得越来越流行。在本篇教程中&#xff0c;我们将详细介绍如何在GPT-3中生成中文内容。 一、准备工作 …

随想录Day43--动态规划: 1049. 最后一块石头的重量 II , 494. 目标和 , 474.一和零

最后一块石头重量转化为将一个集合分隔成两个集合&#xff0c;两个集合之间的差值最小&#xff0c;就是最后剩下最小的石头重量。这里可以求集合的一个平均值&#xff0c;如果正好等于平均值&#xff0c;说明可以抵消&#xff0c;这时候重量为0&#xff0c;如果不行&#xff0c…

基于SpringBoot实现CSGO游戏赛事管理系统演示【附项目源码】

基于SpringBoot实现CSGO游戏赛事管理系统演示开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包…

go qt的设置(windows)

使用Go语言开发Qt界面_go qt_kuokay的博客-CSDN博客 # Go的环境变量配置&#xff0c;配置过一次就不用在设置了 go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn go的版本是1.19.2 # 下载therecipe/qt库 go get -v -tagsno_env github.com/therecipe/qt/cmd/...…