当前位置: 首页 > news >正文

LeetCode 64. 最小路径和(HOT100)

第一次错误代码: 

class Solution {
public:int minPathSum(vector<vector<int>>& grid) {int dp[205][205] = {0};int m = grid.size(),n = grid[0].size();for(int i = 1 ;i<=m;i++){for(int j = 1;j<=n;j++){dp[i][j] = min(dp[i][j-1],dp[i-1][j])+grid[i-1][j-1];}}return dp[m][n];}
};

正确代码:
 

class Solution {
public:int minPathSum(vector<vector<int>>& grid) {if(grid.size()==0)return 0;int m = grid.size(),n = grid[0].size();vector<vector<int>>dp(m,vector<int>(n,INT_MAX));dp[0][0]  = grid[0][0];//第一行for(int j = 1;j<n;j++){dp[0][j] = dp[0][j-1]+grid[0][j];}//第一列for(int j = 1;j<m;j++){dp[j][0] = dp[j-1][0]+grid[j][0];}//othersfor(int i = 1;i<m;i++){for(int j = 1;j<n;j++){dp[i][j] = min(dp[i-1][j],dp[i][j-1])+grid[i][j];}}return dp[m-1][n-1];        }
};

 

class Solution {
public:int minPathSum(vector<vector<int>>& grid) {if (!grid.size())return 0;int m = grid.size(), n = grid[0].size();vector<vector<int>> dp(m, vector<int>(n, INT_MAX));for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (!i && !j) {//[0][0]dp[0][0] = grid[0][0];} else if (!i) {//第一行dp[i][j] = dp[i][j - 1] + grid[i][j];} else if (!j) {//第二行dp[i][j] = dp[i - 1][j] + grid[i][j];} else {dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];}}}return dp[m - 1][n - 1];}
};

空间优化:直接在grid数组上记录:

class Solution {
public:int minPathSum(vector<vector<int>>& grid) {int m = grid.size(),n = grid[0].size();for(int i = 0;i<m;i++){for(int j = 0;j<n;j++){if(!i&&!j)continue;if(!i)grid[i][j] +=grid[i][j-1];else if(!j)grid[i][j]+=grid[i-1][j];else grid[i][j]  = min(grid[i-1][j],grid[i][j-1])+grid[i][j];}}return grid[m-1][n-1];}
};

本题注意:第一列和第一行需要特殊处理,以为它们只能分别从上面 左边过来。

相关文章:

LeetCode 64. 最小路径和(HOT100)

第一次错误代码&#xff1a; class Solution { public:int minPathSum(vector<vector<int>>& grid) {int dp[205][205] {0};int m grid.size(),n grid[0].size();for(int i 1 ;i<m;i){for(int j 1;j<n;j){dp[i][j] min(dp[i][j-1],dp[i-1][j])gr…...

ESP8266作为TCP客户端或者服务器使用

ESP8266模块&#xff0c;STA模式&#xff08;与手机搭建TCP通讯&#xff0c;EPS8266为服务端&#xff09;_esp8266作为station-CSDN博客 ESP8266模块&#xff0c;STA模式&#xff08;与电脑搭建TCP通讯&#xff0c;ESP8266 为客户端&#xff09;_esp8266 sta 连接tcp-CSDN博客…...

C#结合.NET框架快速构建和部署AI应用

在人工智能&#xff08;AI&#xff09;的浪潮中&#xff0c;C#作为一种功能强大且类型安全的编程语言&#xff0c;为AI工程开发提供了坚实的基础。C#结合.NET框架&#xff0c;使得开发者能够快速构建和部署AI应用。本文将通过一个简单的实例&#xff0c;展示如何使用C#进行AI工…...

题外话 (火影密令)

哥们&#xff01; 玩火影不&#xff01; 村里人全部评论&#xff01; 不评论的忍战李全保底&#xff01; 哥们&#xff01; 密令领了不&#xff01; “1219村里人集合”领了吗&#xff01; 100金币&#xff01; 哥们&#xff01; 我粉丝没人能上影&#xff01; 老舅说的…...

蓝桥杯准备训练(lesson1,c++方向)

前言 报名参加了蓝桥杯&#xff08;c&#xff09;方向的宝子们&#xff0c;今天我将与大家一起努力参赛&#xff0c;后序会与大家分享我的学习情况&#xff0c;我将从最基础的内容开始学习&#xff0c;带大家打好基础&#xff0c;在每节课后都会有练习题&#xff0c;刚开始的练…...

RTDETR融合[ECCV2024]WTConvNeXt中的WTConv模块及相关改进思路

RT-DETR使用教程&#xff1a; RT-DETR使用教程 RT-DETR改进汇总贴&#xff1a;RT-DETR更新汇总贴 《Wavelet Convolutions for Large Receptive Fields》 一、 模块介绍 论文链接&#xff1a;https://arxiv.org/pdf/2407.05848 代码链接&#xff1a;https://github.com/BGU-CS…...

AD7606使用方法

AD7606是一款8通道最高16位200ksps的AD采样芯片。5V单模拟电源供电&#xff0c;真双极性模拟输入可以选择10 V&#xff0c;5 V两种量程。支持串口与并口两种读取方式。 硬件连接方式&#xff1a; 配置引脚 引脚功能 详细说明 OS2 OS1 OS2 过采样率配置 000 1倍过采样率 …...

嵌入式系统应用-LVGL的应用-平衡球游戏 part1

平衡球游戏 part1 1 平衡球游戏的界面设计2 界面设计2.1 背景设计2.2 球的设计2.3 移动球的坐标2.4 用鼠标移动这个球2.5 增加边框规则2.6 效果图2.7 游戏失败重启游戏 3 为小球增加增加动画效果3.1 增加移动效果代码3.2 具体效果图片 平衡球游戏 part2 第二部分文章在这里 1 …...

JVM(四) - JVM 内存结构

目录 一、程序计数器 1.1 作用 1.2 概述 二、虚拟机栈 2.1 概述 2.2 栈的存储单位 2.3 栈运行原理 2.4 栈帧的内部结构 2.4.1. 局部变量表 槽 Slot 2.4.2. 操作数栈 概述 栈顶缓存&#xff08;Top-of-stack-Cashing&#xff09; 2.4.3. 动态链接&#xff08;指向…...

【AI系统】CANN 算子类型

CANN 算子类型 算子是编程和数学中的重要概念&#xff0c;它们是用于执行特定操作的符号或函数&#xff0c;以便处理输入值并生成输出值。本文将会介绍 CANN 算子类型及其在 AI 编程和神经网络中的应用&#xff0c;以及华为 CANN 算子在 AI CPU 的详细架构和开发要求。 算子基…...

VUE脚手架练习

脚手架安装的问题&#xff1a; 1.安装node.js,配置环境变量,cmd输入node -v和npm -v可以看到版本号&#xff08;如果显示不是命令&#xff0c;确认环境变量是否配置成功&#xff0c;记得配置环境变量之后重新打开cmd&#xff0c;再去验证&#xff09; 2.在安装cnmp时&#xf…...

动态艺术:用Python将文字融入GIF动画

文章内容&#xff1a; 在数字媒体的多样化发展中&#xff0c;GIF动画作为一种流行的表达形式&#xff0c;常被用于广告、社交媒体和娱乐。本文通过一个具体的Python编程示例&#xff0c;展示了如何将文字以动态形式融入到GIF动画中&#xff0c;创造出具有视觉冲击力的动态艺术…...

更多开源创新 挑战OpenAI-o1的模型出现和AI个体模拟突破

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

VR眼镜可视化编程:开启医疗信息系统新纪元

一、引言 随着科技的飞速发展&#xff0c;VR 可视化编程在医疗信息系统中的应用正逐渐成为医疗领域的新趋势。它不仅为医疗教育、手术培训、疼痛管理等方面带来了新的机遇&#xff0c;还在提升患者体验、推动医疗信息系统智能化等方面发挥着重要作用。 在当今医疗领域&#xf…...

Ubuntu访问简书403

日期 二〇二四年十二月三日 操作系统 Ubuntu 22.04 浏览器 firefox 问题 打开简书提示403. 原因 简书不认带ubuntu的UA 解决办法 - 浏览器地址栏输入 about:config。接受风险 - 搜索 general.useragent.override&#xff0c;无则新建 string类型。 - 查看浏览器 UA&…...

SQL高级应用——索引与视图

数据库优化离不开索引和视图的合理使用。索引用于加速查询性能&#xff0c;而视图则在逻辑层简化了查询逻辑&#xff0c;提高了可维护性。本文将从以下几个方面详细探讨索引与视图的概念、应用场景、优化技巧以及最新的技术发展&#xff1a; 1. 索引类型与应用场景 索引是数据…...

docker部署文件编写(还未尝试)

docker文件启动mysql 要使用Docker启动MySQL&#xff0c;您可以通过以下步骤编写Dockerfile&#xff1a; 选择一个基础镜像&#xff0c;通常是一个包含了MySQL的Linux发行版。 设置环境变量&#xff0c;如MySQL的root密码等。 在容器启动时运行MySQL服务。 以下是一个简单…...

缓存与数据库数据一致性 详解

缓存与数据库数据一致性详解 在分布式系统中&#xff0c;缓存&#xff08;如 Redis、Memcached&#xff09;与数据库&#xff08;如 MySQL、PostgreSQL&#xff09;一起使用是提高系统性能的常用方法。然而&#xff0c;缓存与数据库可能因更新时序、操作失误等原因出现数据不一…...

每日计划-1203

1. 完成 236. 二叉树的最近公共祖先 ​ /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/ class Solution {public:TreeNode* lowe…...

HTML5动漫主题网站——天空之城 10页 html+css+设计报告成品项目模版

&#x1f4c2;文章目录 一、&#x1f4d4;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站演示 五、⚙️网站代码 &#x1f9f1;HTML结构代码 &#x1f492;CSS样式代码 六、&#x1f527;完整源码下载 七、&#x1f4e3;更多 一、&#…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...

NPOI操作EXCEL文件 ——CAD C# 二次开发

缺点:dll.版本容易加载错误。CAD加载插件时&#xff0c;没有加载所有类库。插件运行过程中用到某个类库&#xff0c;会从CAD的安装目录找&#xff0c;找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库&#xff0c;就用插件程序加载进…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...

FFmpeg avformat_open_input函数分析

函数内部的总体流程如下&#xff1a; avformat_open_input 精简后的代码如下&#xff1a; int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...

文件上传漏洞防御全攻略

要全面防范文件上传漏洞&#xff0c;需构建多层防御体系&#xff0c;结合技术验证、存储隔离与权限控制&#xff1a; &#x1f512; 一、基础防护层 前端校验&#xff08;仅辅助&#xff09; 通过JavaScript限制文件后缀名&#xff08;白名单&#xff09;和大小&#xff0c;提…...