每日两题2

不同路径

在这里插入图片描述

class Solution {
public:int uniquePaths(int m, int n) {vector<vector<int>> dp(m+1, vector<int>(n+1,0));//创建dp表dp[0][1] = 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][n];}
};

不同路径II

在这里插入图片描述
代码一

class Solution {
public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {//创建dp表int m = obstacleGrid.size(),n = obstacleGrid[0].size();vector<vector<int>> dp(m + 1, vector<int>(n+1, 0));dp[0][1] = 1;//初始化//填表for(int i = 1; i <= m; i++){for(int j = 1; j <= n; j++){if(i >= 2 && obstacleGrid[i-1-1][j-1] == 1) dp[i-1][j] =0;if(j >= 2 && obstacleGrid[i-1][j-1-1] == 1) dp[i][j-1] =0;dp[i][j] = dp[i-1][j] + dp[i][j-1];if(obstacleGrid[i-1][j-1] == 1) dp[i][j] =0;//终点存在障碍}}return dp[m][n];}
};

代码二

class Solution {
public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {//创建dp表int m = obstacleGrid.size(),n = obstacleGrid[0].size();vector<vector<int>> dp(m + 1, vector<int>(n+1, 0));dp[0][1] = 1;//初始化//填表for(int i = 1; i <= m; i++)for(int j = 1; j <= n; j++)if(obstacleGrid[i-1][j-1] == 0)dp[i][j] = dp[i-1][j] + dp[i][j-1];return dp[m][n];}
};

以上代码一可以返回正确答案;但存在错误修改闲置背包问题,逻辑思维不严谨;

这道题只需要在上道题的基础上加一个障碍物判断即可,代码实现也是如此。

注意:注意这里的映射关系obstacleGrid[i-1-1][j-1]对应的位置应是dp[i-1][j];<这里的映射关系非常重要>
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

一分钟举例了解AI智能客服机器人的具体应用

AI智能客服机器人广泛应用于多个领域&#xff0c;充斥着我们生活的方方面面。在电商领域、银行业、电信行业、政府机构、教育机构、医疗机构等也借助AI智能客服机器人提供咨询、答疑等服务。但是具体是怎么应用到这些场景的呢&#xff1f;今天就用HelpLook的AI智能机器人的具体…

算法与数据结构(基于Go语言)学习笔记01

算法初识&#xff1a;汉诺塔问题(Towers of Hanoi) 规则简介 ​ 给定三根柱子&#xff0c;记为 A A A、 B B B、 C C C&#xff0c;其中 A A A 柱子上有 n − 1 n-1 n−1 个盘子&#xff0c;从上至下盘子越来越大。问&#xff1a;将 A A A柱上的盘子经由 B B B柱&#xff…

Leetcode 15. 三数之和(暴力->双指针)

给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。 示例 1…

解决EasyPoi导入Excel获取不到第一列的问题

文章目录 1. 复现错误2. 分析错误2.1 导入的代码2.2 DictExcel实体类2.2 表头和标题3. 解决问题1. 复现错误 使用EasyPoi导入数据时,Excel表格如下图: 但在导入时,出现如下错误: name为英文名称,在第一列,Excel表格有值,但导入的代码中为null,就很奇怪? 2. 分析错误 …

机器学习中的激活函数

激活函数存在的意义&#xff1a; 激活函数决定了某个神经元是否被激活&#xff0c;当这个神经元接收到的信息是有用或无用的时候&#xff0c;激活函数决定了对这个神经元接收到的信息是留下还是抛弃。如果不加激活函数&#xff0c;神经元仅仅做线性变换&#xff0c;那么该神经网…

基于Ultrascale+系列GTY收发器8b/10b编码方式的数据传输(三)——利用In System IBERT优化信号质量

基于Ultrascale系列GTY收发器8b/10b编码方式的数据传输&#xff08;二&#xff09;——数据收发及上板测试 一文介绍了利用GTY高速收发器进行8B/10B编码数据收发的使用方式&#xff0c;本文继续介绍使用In System IBERT IP核构建ibert眼图测试&#xff0c;以及通过设置参数以优…

ArcGIS三维景观分层显示

今天将向大家介绍的事在ArcGIS中如何创建多层三维显示。 地表为影像的 地表为地形晕渲的 在土壤分层、油气分层等都有着十分重要的应用。下面我们具体来看看实现过程 一、 准备数据及提取栅格范围 我们这次准备的数据是之前GIS100例-30讲的案例数据。《ArcGIS三维影像图剖面图…

C语言 函数——代码风格

目录 基本的代码规范 程序版式 对齐&#xff08;Alignment&#xff09;与缩进&#xff08;indent&#xff09; 变量的对齐规则 空行——分隔程序段落的作用 代码行内的空格——增强单行清晰度 代码行 长行拆分 标识符命名规则 标识符命名的共性规则 windows应用程序…

发人深省:如果前端开发是青春饭,为何你的青春这么匆匆。

有很多人说前端开发是青春饭&#xff0c;干不了多久&#xff0c;很容易被取代&#xff0c;这就是危言耸听了。只要前端岗位在一天&#xff0c;这就不是青春饭&#xff1b;即便被取代&#xff0c;资深前端很快就会在别的地方找到自己立身之本&#xff0c; 反观哪些天天抱怨&…

【Excel2LaTeX】复杂表格制作的解决方案

刚开始用LaTeX写论文&#xff0c;遇到的第一道坎就是绘制表格&#xff0c;较小的普通表格可以通过简单的语法实现&#xff0c;但是较大的复杂的表格却让我无从下手。 Excel2LaTeX插件 这里介绍一种我用到非常顺手的工具&#xff1a;Excel2LaTeX插件&#xff0c;下载地址&#x…

C语言:文件操作(四)

目录 前言 6、文本文件和二进制文件 7、文件读取结束的判定 7.1 被错误使用的feof 8、文件缓冲区 总结 前言 接上篇&#xff0c;本篇要讲解的是文本文件和二进制文件的内容、文件读取结束的判定以及文件缓冲区。 6、文本文件和二进制文件 根据数据的组织形式&#xff0c;数…

嵌入式工程师如何摸鱼?

有老铁问我&#xff0c;做嵌入式开发要加班吗&#xff1f; 也不知道搞什么鬼&#xff0c;现在的年轻人对加班这么抵触。 我刚做开发那会&#xff0c;啥也不懂&#xff0c;每天基本都要加班到晚上7-9点不等&#xff0c;我并不抵触加班&#xff0c;因为早早回家&#xff0c;也没什…