D34|不同路径
62.不同路径

初始思路:
1)确定dp数组以及下标的含义:
dp[i][i]存放到第i+1行和第i+1列的方法数
2)确定递推公式:
dp[i][i] = dp[i -1][i] + dp[i][i-1]
3)dp数组如何初始化
第0行是1;
第0列是1;
4)确定遍历顺序
从前到后
5)举例推导dp数组
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 i = 0;i<n;i++){dp[0][i] = 1;}for(int i =1;i<m;i++){for(int j = 1;j<n;j++){dp[i][j] = dp[i][j-1] + dp[i-1][j];}}return dp[m-1][n-1];}
}
题解复盘:
基本一致 。
63. 不同路径 II
初始思路:
在前一题的基础之上增加了对障碍数组的判断,如果第一行中有一个障碍,那么这个障碍后面的dp全部赋值为0,前面的都赋值为1;列同理。
再过程中遇到障碍,令当前dp为0即可。
class Solution {public int uniquePathsWithObstacles(int[][] obstacleGrid) {int m = obstacleGrid.length;int n = obstacleGrid[0].length;int[][] dp = new int[m][n];for(int i = 0;i<m;i++){if(obstacleGrid[i][0]==1){break;}dp[i][0] = 1;}for(int i = 0;i<n;i++){if(obstacleGrid[0][i]==1){break;}dp[0][i] = 1;}for(int i =1;i<m;i++){for(int j = 1;j<n;j++){if(obstacleGrid[i][j]==1){dp[i][j] = 0;}else{dp[i][j] = dp[i][j-1] + dp[i-1][j];}}}return dp[m-1][n-1];}
}
相关文章:
D34|不同路径
62.不同路径 初始思路: 1)确定dp数组以及下标的含义: dp[i][i]存放到第i1行和第i1列的方法数 2)确定递推公式: dp[i][i] dp[i -1][i] dp[i][i-1] 3)dp数组如何初始化 第0行是1; 第0列是1&a…...
【运维】Kafka高可用: KRaft(不依赖zookeeper)集群搭建
文章目录 一. kafka kraft 集群介绍1. KRaft架构2. Controller 服务器3. Process Roles4. Quorum Voters5. kraft的工作原理 ing 二. 集群安装1. 安装1.1. 配置1.2. 格式化 2. 启动测试2.1. 启功节点服务2.2. 测试 本文主要介绍了 kafka raft集群架构: 与旧架构的不…...
Python 自动化之批量处理文件(一)
批量新建目录、文档Pro版本 文章目录 批量新建目录、文档Pro版本前言一、做成什么样子二、基本思路1.引入库2.基本架构 三、用户输入模块四、数据处理模块1.excel表格数据获取2.批量数据的生成 总结 前言 我来写一个不一样的批量新建吧。在工作中,有些同学应该会遇…...
力扣72. 编辑距离
动态规划 思路: 假设 dp[i][j] 是 word1 前 i 个字母到 word2 前 j 个字母的编辑距离;那么状态 dp[i][j] 状态的上一个状态有: dp[i - 1][j],word1 前 i - 1 个字母到 word2 前 j 个字母的编辑距离,此状态再插入一个字…...
Unity中 URP Shader 的纹理与采样器的分离定义
文章目录 前言一、URP Shader 纹理采样的实现1、在属性面板定义一个2D变量用于接收纹理2、申明纹理3、申明采样器4、进行纹理采样 二、申明纹理 和 申明采样器内部干了什么1、申明纹理2、申明采样器 三、采样器设置采样器的传入格式1、纹理设置中,可以看见我们的采样…...
Electron学习第一天 ,启动项目
之前在安装官网的步骤操作,结果报错,找了好多办法,最后这种办法成功启动项目,并且没有报错,特此记录 特别提醒,最好安装淘宝镜像,npm 太慢,会导致报错问题,解决起来个人觉…...
WebService技术--随笔1
1.WebService 发展史 创建阶段(1990 年代末至 2000 年代初):在这个阶段,XML-RPC 和 SOAP 协议被引入,为跨平台和跨语言的应用程序集成提供了基础。XML-RPC 提供了一种基于 XML 的远程过程调用机制,而 SOAP…...
如何使用Docker将.Net6项目部署到Linux服务器(一)
目录 一 配置服务器环境 1.1 配置yum 1.1.1 更新yum包 1.1.2 yum命令 1.2 配置docker …...
第4章-第3节-Java中跟数组相关的几个算法以及综合应用
在写这篇博文之前,先大概说明一下,就是很常见的数组算法如求最大值、一维数组的遍历等,这里就不去专门说明了,只说一些有代表性的,然后就是冒泡排序算法很容易查阅到,这里也不专门说明了,只说明…...
AlexNet(pytorch)
AlexNet是2012年ISLVRC 2012(ImageNet Large Scale Visual Recognition Challenge)竞赛的冠军网络,分类准确率由传统的 70%提升到 80% 该网络的亮点在于: (1)首次利用 GPU 进行网络加速训练。 ÿ…...
【单调栈 】LeetCode321:拼接最大数
作者推荐 【动态规划】【广度优先搜索】LeetCode:2617 网格图中最少访问的格子数 本文涉及的知识点 单调栈 题目 给定长度分别为 m 和 n 的两个数组,其元素由 0-9 构成,表示两个自然数各位上的数字。现在从这两个数组中选出 k (k < m n) 个数字…...
TikTok与虚拟现实的完美交融:全新娱乐时代的开启
TikTok,这个风靡全球的短视频平台,与虚拟现实(VR)技术的深度结合,为用户呈现了一场全新的娱乐盛宴。虚拟现实技术为TikTok带来了更丰富、更沉浸的用户体验,标志着全新娱乐时代的开启。本文将深入探讨TikTok…...
PXI/PCIe/VPX机箱 ARM|x86 + FPGA测试测量板卡解决方案
PXI便携式测控系统是一种基于PXI总线的便携式测试测控系统,它填补了现有台式及机架式仪器在外场测控和便携测控应用上的空白,在军工国防、航空航天、兵器电子、船舶舰载等各个领域的外场测控场合和科学试验研究场合都有广泛的应用。由于PXI便携式测控系统…...
ES6 面试题 | 12.精选 ES6 面试题
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...
【linux】Debian不能运行sudo的解决
一、问题: sudo: 没有找到有效的 sudoers 资源,退出 sudo: 初始化审计插件 sudoers_audit 出错 二、可用的方法: 出现 "sudo: 没有找到有效的 sudoers 资源,退出" 和 "sudo: 初始化审计插件 sudoers_audit 出错&q…...
讲解ThinkPHP的链式操作
数据库提供的链式操作方法,可以有效的提高数据存取的代码清晰度和开发效率,并且支持所有的CURD操作。 使用也比较简单,假如我们现在要查询一个User表的满足状态为1的前10条记录,并希望按照用户的创建时间排序 Db::table(think_u…...
Java技术栈 —— 微服务框架Spring Cloud —— Ruoyi-Cloud 学习(二)
RuoYi项目开发过程 一、登录功能(鉴权模块)1.1 后端部分1.1.1 什么是JWT?1.1.2 什么是Base64?为什么需要它?1.1.3 SpringBoot注解解析1.1.4 依赖注入和控制反转1.1.5 什么是Restful?1.1.6 Log4j 2、Logpack、SLF4j日志框架1.1.7 如何将项目打包成指定bytecode字节…...
如何进行软件测试和测试驱动开发(TDD)?
1. 软件测试概述 1.1 什么是软件测试? 软件测试是一种评估系统的过程,目的是发现潜在的错误或缺陷。通过对软件进行测试,开发者和测试人员可以确定软件是否符合预期的需求、功能是否正常运行,以及系统是否足够稳定和可靠。 1.2…...
linux 开机启动流程
1.打开电源 2.BIOS 有时间和启动方式 3.启动Systemd 其pid为1 4.挂载引导分区 /boot 5.启动各种服务 如rc.local...
Mybatis 动态SQL的插入操作
需求 : 根据用户的输入情况进行插入 动态SQL:根据需求动态拼接SQL 用户往表中插入数据,有的数据可能不想插入,比如不想让别人知道自己的性别,性别就为空 insert into userinfo(username,password,age,gender,phone) values(?,?,?,?,?); insert into userinfo(username,…...
不止于解题:用玄机靶场案例,打造你的自动化安全日志监控脚本
不止于解题:用玄机靶场案例打造自动化安全日志监控脚本 在网络安全领域,日志分析往往是防御的第一道防线。当我们在玄机靶场中完成SSH爆破日志分析的解题后,是否想过将这些手动操作转化为自动化工具?本文将带你从单次解题跃升到持…...
如何用OpenPLC Editor实现工业级控制?3大场景实战指南
如何用OpenPLC Editor实现工业级控制?3大场景实战指南 【免费下载链接】OpenPLC_Editor 项目地址: https://gitcode.com/gh_mirrors/ope/OpenPLC_Editor 你是否曾遇到过工业控制编程的困境?传统PLC开发成本高昂、学习曲线陡峭、兼容性差…...
OpCore-Simplify终极指南:如何快速构建完美的OpenCore EFI配置
OpCore-Simplify终极指南:如何快速构建完美的OpenCore EFI配置 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的Hackintosh配置…...
数据仓库的设计与实现:从概念到落地
数据仓库的设计与实现:从概念到落地 前言 作为一个在数据深渊里捞了十几年 Bug 的女码农,我深知数据仓库在企业数据管理中的重要性。一个好的数据仓库不仅能帮助企业整合分散的数据,还能为业务决策提供有力支持。今天,我就来聊聊数…...
Wan2.2-T2V-A5B案例分享:用简单提示词生成流畅运动视频
Wan2.2-T2V-A5B案例分享:用简单提示词生成流畅运动视频 1. 模型简介与核心优势 Wan2.2-T2V-A5B是由通义万相开源的一款轻量级文本到视频生成模型,拥有50亿参数规模。这款模型专为快速内容创作优化,支持480P视频生成,具备优秀的时…...
GuwenBERT:古文自然语言处理的技术革新
GuwenBERT:古文自然语言处理的技术革新 【免费下载链接】guwenbert GuwenBERT: 古文预训练语言模型(古文BERT) A Pre-trained Language Model for Classical Chinese (Literary Chinese) 项目地址: https://gitcode.com/gh_mirrors/gu/guwe…...
GLM-4.7-Flash多场景落地:保险条款解读、理赔话术生成与客户异议应答
GLM-4.7-Flash多场景落地:保险条款解读、理赔话术生成与客户异议应答 保险行业每天都要处理海量的文本工作:厚厚的保单条款需要解读,复杂的理赔申请需要沟通,客户的各种疑问需要专业、及时地回应。这些工作不仅繁琐,而…...
【极简监控】告别重度存储!用 InMemoryMetricsCollector 搞定 99% 的单体应用Metrics排错
文章目录前言破局:断舍离,只关注“最近半小时”极简利器:InMemoryMetricsCollector 的设计哲学它是如何工作的?注入灵魂:结合 AI 的智能可视化结语与延伸相关前言 做系统监控这么多年下来,我们团队常常在反…...
ACE协议实战:如何通过AxDOMAIN信号优化多核SoC的缓存一致性?
ACE协议实战:AxDOMAIN信号在多核SoC缓存一致性中的深度优化 1. 多核SoC缓存一致性的工程挑战 在现代嵌入式系统设计中,多核处理器架构已成为提升性能的主流方案。当我们把多个ARM Cortex-A系列核心集成到同一芯片时,缓存一致性管理立即成为系…...
Mac用户必看:OpenClaw一键安装百川2-13B-4bits量化模型指南
Mac用户必看:OpenClaw一键安装百川2-13B-4bits量化模型指南 1. 为什么选择这个组合? 上周我在调试一个自动化文档处理流程时,发现常规的7B模型在处理复杂表格时经常漏掉关键字段。在测试了多个开源模型后,百川2-13B的表格理解能…...
