算法修炼-动态规划之路径问题(1)

62. 不同路径 - 力扣(LeetCode)

        思路:选定一个网格为终点,走到这个网格的所有走法就是这个网格的上面一个网格的所有走法加上这个网格左边一个网格的所有走法,然后做好初始化工作就行。 

class Solution {
public:int uniquePaths(int m, int n) {//dp表int arr[m][n];//特殊处理if(m == 1 || n == 1)return 1;//初始化for(int i = 0; i<m; i++){arr[i][0] = 1;}for(int i = 0; i<n; i++){arr[0][i] = 1;}//状态转移方程for(int i = 1; i<m; i++){for(int j = 1; j<n; j++){arr[i][j] = arr[i][j-1] + arr[i-1][j];}}return arr[m-1][n-1];}
};

63. 不同路径 II - 力扣(LeetCode)

        思路: 这道题可以看做事上面那道题的升级版,我的思路就是先将创建出来的dp表先全部初始化为0,在状态转移方程中,如果遇到障碍物,就保持dp表中障碍物位置的值仍为0,其余位置的值为它的上面加上它的左边。这时有人可能就会有疑问了,如果一个位置的左边或者是上面为障碍物不影响赋值吗?答案是不影响的。因为障碍物位置的值就是0,加上跟没加没有区别,所以可以统一加上。

class Solution {
public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {   //dp表int m = obstacleGrid.size();int n = obstacleGrid[0].size();vector<vector<int>> dp(m, vector<int>(n));//初始化for(int i = 0; i<n; i++){if(obstacleGrid[0][i] == 0)dp[0][i] = 1;elsebreak;}for(int i = 0; i<m; i++){if(obstacleGrid[i][0] == 0)dp[i][0] = 1;elsebreak;}//状态转移方程for(int i= 1; i<m; i++){for(int j = 1; j<n; j++){if(obstacleGrid[i][j] != 1)dp[i][j] = dp[i-1][j] + dp[i][j-1];}}return dp[m-1][n-1];

LCR 166. 珠宝的最高价值 - 力扣(LeetCode)

         思路:这题采用的方法略微跟上面两题不同,这一题的dp表我多补了一行和一列,通过比较所在位置的上面一个位置和左边一个位置谁大,加上值大的那个位置,只不过这种方法要注意两个表之间下标的对应关系。

class Solution {
public:int jewelleryValue(vector<vector<int>>& frame) {//dp表int m = frame.size();int n = frame[0].size();vector<vector<int>> dp(m+1, vector<int>(n+1));//初始化+状态转移方程for(int i = 1; i<=m ;i++){for(int j = 1; j<=n; j++){if(dp[i-1][j] < dp[i][j-1]){dp[i][j] += frame[i-1][j-1]+dp[i][j-1];}else{dp[i][j] += frame[i-1][j-1] + dp[i-1][j];}}}return dp[m][n];}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/505380.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

扼杀网络中的环路:STP、RSTP、MSTP

目录 前言&#xff1a; 一、STP&#xff08;Spanning Tree Protocol&#xff09; 1.1 STP功能 1.2 STP应用 二、RSTP&#xff08;Rapid Spanning Tree Protocol&#xff09; 2.1 RSTP功能 2.2 RSTP应用 三、MSTP&#xff08;Multiple Spanning Tree Protocol&#xff0…

【中英对照】【自译】【精华】麻省理工学院MIT技术双月刊(Bimonthly MIT Technology Review)2024年3/4月刊内容概览

一、说明 Notation 仅供学习、参考&#xff0c;请勿用于商业行为。 二、本期封面、封底 Covers 本期杂志购于新加坡樟宜机场Changi Airport Singapore&#xff0c;售价为20.50新元。 本期仍然关注伦敦的AI大会。&#xff08;笔者十分想去&#xff0c;在伦敦和MIT校园均设有会…

SpringBoot整合rabbitmq-扇形交换机队列(三)

说明&#xff1a;本文章主要是Fanout 扇形交换机的使用&#xff0c;它路由键的概念&#xff0c;绑定了页无用&#xff0c;这个交换机在接收到消息后&#xff0c;会直接转发到绑定到它上面的所有队列。 大白话&#xff1a;广播模式&#xff0c;交换机会把消息发给绑定它的所有队…

进程间的通信 -- 共享内存

一 共享内存的概念 1. 1 共享内存的原理 之前我们学过管道通信&#xff0c;分为匿名管道和命名管道&#xff0c;匿名管道通过父子进程的属性继承原理来完成父子进程看到同一份资源的目的&#xff0c;而命名管道则是通过路径与文件名来唯一标识管道文件&#xff0c;来让不同的进…

【系统分析师】-需求工程

一、需求工程 需求工程分为需求开发和需求管理。 需求开发&#xff1a;需求获取&#xff0c;需求分析&#xff0c;需求定义、需求验证。 需求管理&#xff1a;变更控制、版本控制、需求跟踪&#xff0c;需求状态跟踪。&#xff08;对需求基线的管理&#xff09; 1.1需求获取…

02-设计概述

上一篇&#xff1a;01-导言 本章重点讨论 JNI 中的主要设计问题。本节中的大多数设计问题都与本地方法有关。调用 API 的设计将在第 5 章&#xff1a;调用 API 中介绍。 2.1 JNI 接口函数和指针 本地代码通过调用 JNI 函数来访问 Java 虚拟机功能。JNI 函数可通过接口指针使用…

如何实现桌面美化

一.隐藏桌面图标 1. 在商店里下载TranslucentTB 二.设置底层图标 1.下载Nexus 打开官网&#xff1a; Winstep Nexus Dock and Nexus Ultimate - The Advanced Docking System for Windows 三.设置插件 1.打开致美化官网 致美化 - 最专业的视觉美化交流平台 (zhutix.com) 2.注…

MySQL进阶:全局锁、表级锁、行级锁总结

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;MySQL进阶&#xff1a;MySQL事务、并发事务问题及隔离级别 &#x1f4da;订阅专栏&#xff1a;MySQL进阶 希望文章对你们有所帮助…

swagger在java中的基本使用

自动生成接口文档&#xff0c;和在线接口测试的框架。 导入依赖 <!-- knife4j对swagger进行一个封装--><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><versi…

LeetCode 刷题 [C++] 第121题.买卖股票的最佳时机

题目描述 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的…

Linux笔记--系统相关指令

一、系统资源观察 1. df 指令&#xff08;显示文件系统磁盘使用情况统计&#xff09; disk free&#xff0c;显示文件系统磁盘使用情况统计 #以高可读性的形式显示磁盘使用情况统计 df -h (挂载:利用一个目录当成进入点&#xff0c;将磁盘分区槽的数据放置到该目录下&…

Sqli-labs靶场第14关详解[Sqli-labs-less-14]

Sqli-labs-Less-14 #手工注入 post传参了 根据题目看&#xff0c;像一个登录页面&#xff0c;尝试使用布尔型盲注测试能否登录网站 1. Username输入a" 测试是否会有报错&#xff0c;burp抓包 报错&#xff1a;syntax to use near "a"" and password&q…