代码随想录Day34:62.不同路径、63.不同路径II、343.整数拆分、96.不同的二叉搜索树
62. 不同路径
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。
问总共有多少条不同的路径?
题目链接:LeetCode62.不同路径
文档讲解:代码随想录LeetCode62.不同路径
题解
class Solution {
public:int uniquePaths(int m, int n) {vector<vector<int>> dp(m, vector<int>(n, 0));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];}
};
- 时间复杂度:O(mn)
- 空间复杂度:O(mn)
63. 不同路径II
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。
现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?
网格中的障碍物和空位置分别用 1 和 0 来表示。
题目链接:LeetCode63.不同路径II
文档讲解:代码随想录LeetCode63.不同路径II
题解
当路径上出现障碍时,dp数组对应位置的值保持不变为0
class Solution {
public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {int m = obstacleGrid.size();int n = obstacleGrid[0].size();vector<vector<int>> dp(m, vector<int>(n, 0));for (int i = 0; i < m && obstacleGrid[i][0] == 0; i++)dp[i][0] = 1;for (int j = 0; j < n && obstacleGrid[0][j] == 0; j++)dp[0][j] = 1;for (int i = 1; i < m; i++) {for (int j = 1; j < n; j++) {if (obstacleGrid[i][j] == 1)continue;dp[i][j] = dp[i - 1][j] + dp[i][j - 1];}}return dp[m - 1][n - 1];}
};
- 时间复杂度:O(mn)
- 空间复杂度:O(mn)
343. 整数拆分
给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化。
返回 你可以获得的最大乘积 。
题目链接:LeetCode343.整数拆分
文档讲解:代码随想录LeetCode343.整数拆分
题解
分拆数字 i 可以得到的最大乘积为dp[i],遍历过程中的递推公式为dp[i] = max(dp[i], max(j * (i - j), j * dp[i - j]))
class Solution {
public:int integerBreak(int n) {vector<int> dp(n + 1);dp[2] = 1;for (int i = 3; i <= n; i++) {for (int j = 1; j < i; j++) {dp[i] = max(dp[i], max(j * (i - j), j * dp[i - j]));}}return dp[n];}
};
- 时间复杂度:O(n^2)
- 空间复杂度:O(n)
96. 不同的二叉搜索树
给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。
题目链接:LeetCode96.不同的二叉搜索树
文档讲解:代码随想录LeetCode96.不同的二叉搜索树
题解
dp[i]为利用 i 个节点可以得到的不同二叉搜索树的种数,以n=3为例,dp[3] = 元素1为头节点搜索树的数量 + 元素2为头节点搜索树的数量 + 元素3为头节点搜索树的数量。
元素1为头节点搜索树的数量 = 右子树有2个元素的搜索树数量 * 左子树有0个元素的搜索树数量
元素2为头节点搜索树的数量 = 右子树有1个元素的搜索树数量 * 左子树有1个元素的搜索树数量
元素3为头节点搜索树的数量 = 右子树有0个元素的搜索树数量 * 左子树有2个元素的搜索树数量
class Solution {
public:int numTrees(int n) {vector<int> dp(n + 1);dp[0] = 1;dp[1] = 1;for (int i = 2; i <= n; i++) {for (int j = 0; j < i; j++) {dp[i] += dp[j] * dp[i - j - 1];}}return dp[n];}
};
- 时间复杂度:O(n^2)
- 空间复杂度:O(n)
相关文章:
代码随想录Day34:62.不同路径、63.不同路径II、343.整数拆分、96.不同的二叉搜索树
62. 不同路径 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径&…...
【信息学奥赛一本通】1008:计算(a+b)/c的值
1008:计算(ab)/c的值 时间限制: 1000 ms 内存限制: 66536 KB 提交数:164836 通过数: 142434 【题目描述】 给定3个整数a、b、c,计算表达式abc的值。 【输入】 输入仅一行,包括三个整数a、b、c, 数与数之间以一个空格分开。(-10,…...
使用 jstat 进行 Java 应用程序性能监控
jstat 使用经验笔记 1. 简介 jstat 是 Java 开发工具包 (JDK) 中的一个命令行工具,用于监控 Java 虚拟机 (JVM) 的运行时状态,特别是垃圾回收 (Garbage Collection, GC) 的行为。通过使用 jstat,你可以监控和诊断 Java 应用程序的内存使用情…...
Prompt指令调优大揭秘
Hey,技术达人们!今天咱们就来聊聊Prompt指令调优的那些事儿。想象一下,你有一个超级智能的AI小伙伴,但要让它更懂你,更给力,那就得靠点“魔法”——Prompt指令调优。准备好了吗?让我们一探究竟&…...
C语言中的⽂件操作
1. 为什么使⽤⽂件? 如果没有⽂件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运⾏程序,是看不到上次程序的数据的,如果要将数据进⾏持久化…...
黑马前端——days14_js
案例 1 页面框架文件 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title>&l…...
【自动驾驶】ROS中参数服务器通信(c++)
目录 通信过程新建参数服务器包编写测试文件修改cmakelist:搭配launch文件启动测试及结果 通信过程 1.Talker 设置参数 Talker 通过 RPC 向参数服务器发送参数(包括参数名与参数值),ROS Master 将参数保存到参数列表中。 2.Listener 获取参数 Listener 通过 RPC 向…...
零基础5分钟上手亚马逊云科技核心云开发知识 - 网络基础
简介: 欢迎来到小李哥全新亚马逊云科技AWS云计算知识学习系列,适用于任何无云计算或者亚马逊云科技技术背景的开发者,通过这篇文章大家零基础5分钟就能完全学会亚马逊云科技一个经典的服务开发架构方案。 我会每天介绍一个基于亚马逊云科技…...
Unity Recttransform操作
1、拉伸铺满 RectTransform rect GetComponent<RectTransform>();rect.anchorMin Vector2.zero;rect.anchorMax Vector2.one;rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, Screen.width);rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Verti…...
MIT线性代数P5
置换矩阵 置换矩阵是行重新排列的单位矩阵。 置换矩阵用P表示, 性质: n阶置换矩阵共有n!个...
patroni+etcd开启SSL认证(三个节点证书一致 使用openssl命令)
瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台:Linux x86-64 Red Hat Enterprise Linux 7 版本:14 文档用途 本文主要介绍Patroni架构中如何开启etcd的ssl证书认证。 详细信息 一、前提说明 patroni版本:3.0.2 etcd版本&#x…...
Eureka入门指南:微服务注册与发现的基础概念
Eureka入门指南:微服务注册与发现的基础概念 引言 随着微服务架构的普及,微服务之间的高效通信和管理成为了开发和运维的核心挑战之一。为了解决服务发现和管理问题,Netflix推出了Eureka,一个功能强大的服务注册和发现工具。Eur…...
Linux:动态库和静态库
静态库与动态库 A:静态库(.a):程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库。 B:动态库(.so):程序在运行的时候才去链接动态库的代码&#…...
8.13网络编程
笔记 多点通信 一、套接字属性 套接字属性的获取和设置 #include <sys/types.h> /* See NOTES */#include <sys/socket.h>int getsockopt(int sockfd, int level, int optname,void *optval, socklen_t *optlen);int setsockopt(int sockfd, int level…...
蚂蚁AL1 15.6T 创新科技的新典范
● 哈希率:算力达到15.6T(相当于15600G),即每秒能够进行15.6万亿次哈希计算,在同类产品中算力较为出色,能提高WA掘效率。 ● 功耗:功耗为3510W,虽然数值看似不低,但结合其…...
2024年【汽车驾驶员(技师)】考试报名及汽车驾驶员(技师)试题及解析
题库来源:安全生产模拟考试一点通公众号小程序 汽车驾驶员(技师)考试报名参考答案及汽车驾驶员(技师)考试试题解析是安全生产模拟考试一点通题库老师及汽车驾驶员(技师)操作证已考过的学员汇总…...
2024年【甘肃省安全员C证】报名考试及甘肃省安全员C证考试总结
题库来源:安全生产模拟考试一点通公众号小程序 甘肃省安全员C证报名考试参考答案及甘肃省安全员C证考试试题解析是安全生产模拟考试一点通题库老师及甘肃省安全员C证操作证已考过的学员汇总,相对有效帮助甘肃省安全员C证考试总结学员顺利通过考试。 1、…...
RabbitMQ 双机系统偶尔丢失消息问题排查
实话说起来,这个问题,实际是一个非常低级的错误导致的,算不得什么高深的技术问题。但是在排查的过程中,却是费了好大的功夫,死了不少脑细胞。所以也值得记录一下,算作给大家提个醒,或许可以帮大…...
Python 环境搭建指南 超详细
Python是由荷兰⼈吉多范罗苏姆(Guido von Rossum,后⾯都称呼他为Guido)发明的⼀种编程语言 1. 1989年圣诞节:Guido开始写Python语⾔的编译器。2. 1991年2⽉:第⼀个Python解释器诞⽣,它是⽤C语⾔实现的&…...
使用三菱PLC源码进行PLC读取写入操作
安装 MX Component 。 我的安装地址在: 打开 utl 文件夹下的 Communication Settings Utility 执行。 配置PLC 添加当前需要配置的PLC 注意 logical station Namber 就是程序里需要对接的逻辑站点编号 5.配置选择对应的COM操作选择对应的cpu型型号,…...
如何使用Photon光影包提升Minecraft视觉体验:从安装到高级配置完全指南
如何使用Photon光影包提升Minecraft视觉体验:从安装到高级配置完全指南 【免费下载链接】photon A shader pack for Minecraft: Java Edition 项目地址: https://gitcode.com/gh_mirrors/photon3/photon Photon光影包是一款为Minecraft: Java Edition设计的高…...
Linux用户管理全攻略:从创建到权限配置
1. Linux用户管理基础入门 刚接触Linux系统的朋友,经常会遇到这样的困惑:为什么有些命令普通用户不能执行?为什么新建的用户连基本的命令补全都没有?其实这些都是用户管理的问题。作为一个用了10年Linux的老鸟,今天我就…...
告别LiveCharts实时绘图丢帧:深入剖析WPF数据绑定与渲染优化的五个关键点
告别LiveCharts实时绘图丢帧:深入剖析WPF数据绑定与渲染优化的五个关键点 在金融交易系统、工业监控仪表盘等实时数据可视化场景中,WPF开发者常会遇到一个棘手问题:当数据更新频率超过每秒2-3次时,LiveCharts图表开始出现明显的帧…...
NSLogger高级过滤技巧:正则表达式实战指南
NSLogger高级过滤技巧:正则表达式实战指南 【免费下载链接】NSLogger A modern, flexible logging tool 项目地址: https://gitcode.com/gh_mirrors/ns/NSLogger NSLogger是一款现代、灵活的日志记录工具,专为macOS、iOS和Android平台设计。它取代…...
Python AI用例生成效率提升300%:从零搭建可复用的Prompt工程流水线
第一章:Python AI用例生成效率提升300%:从零搭建可复用的Prompt工程流水线在AI应用开发中,重复编写、调试和验证Prompt严重拖慢用例迭代速度。本章介绍一种基于Python的轻量级Prompt工程流水线,通过模板化、版本化与自动化执行三重…...
CMD脚本开发避坑指南:为什么你的bat文件总是报错?
CMD脚本开发避坑指南:为什么你的bat文件总是报错? 每次双击运行精心编写的bat文件时,看到那个刺眼的"不是内部或外部命令"错误提示,是不是感觉血压瞬间飙升?作为Windows系统中最基础的自动化工具,…...
5秒批量打开20个网页?这款效率工具让多任务处理快到飞起
5秒批量打开20个网页?这款效率工具让多任务处理快到飞起 【免费下载链接】Open-Multiple-URLs Browser extension for opening lists of URLs built on top of WebExtension with cross-browser support 项目地址: https://gitcode.com/gh_mirrors/op/Open-Multip…...
梦幻动漫魔法工坊作品集:看看AI能画出多可爱的二次元世界
梦幻动漫魔法工坊作品集:看看AI能画出多可爱的二次元世界 1. 走进梦幻动漫魔法工坊 想象一下,你脑海中浮现出一个可爱的猫耳少女形象:粉色长发随风飘动,大大的眼睛闪烁着星光,穿着精致的洛丽塔裙子站在糖果色的背景中…...
3个步骤打造个人AI知识库:AnythingLLM浏览器扩展完全指南
3个步骤打造个人AI知识库:AnythingLLM浏览器扩展完全指南 【免费下载链接】anything-llm 这是一个全栈应用程序,可以将任何文档、资源(如网址链接、音频、视频)或内容片段转换为上下文,以便任何大语言模型(…...
从数学建模到真实运维:如何用调度模型优化你校园里的共享单车?
从数学建模到真实运维:校园共享单车调度系统的工业级设计实践 清晨7点的校园东门,总能看到一群学生围着仅剩的几辆共享单车"抢车"的场景;而下午3点的体育馆停车点,却堆积着数十辆无人问津的车辆。这种供需错配现象背后&…...
