OJ练习第135题——下降路径最小和

news2024/11/24 5:44:22

下降路径最小和

力扣链接:931. 下降路径最小和

题目描述

给你一个 n x n 的 方形 整数数组 matrix ,请你找出并返回通过 matrix 的下降路径 的 最小和 。

下降路径 可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列(即位于正下方或者沿对角线向左或者向右的第一个元素)。具体来说,位置 (row, col) 的下一个元素应当是 (row + 1, col - 1)、(row + 1, col) 或者 (row + 1, col + 1) 。

示例

在这里插入图片描述

Java代码

class Solution {
    public int minFallingPathSum(int[][] matrix) {
        int n = matrix.length, res = Integer.MAX_VALUE;
        for(int i = 1; i < n; i++) {
            for(int j = 0; j < n; j++) {
                if(j == 0) {
                    matrix[i][j] += Math.min(matrix[i - 1][j], matrix[i - 1][j + 1]);
                }else if(j == n - 1) {
                    matrix[i][j] += Math.min(matrix[i - 1][j - 1], matrix[i - 1][j]);
                }
                else {
                    matrix[i][j] += Math.min(matrix[i - 1][j - 1], Math.min(matrix[i - 1][j], matrix[i - 1][j + 1]));
                }
            }
        }
        for(int j = 0; j < n; j++) {
            res = Math.min(res, matrix[n - 1][j]);
        }
        return res;
    }
}

python代码

class Solution:
    def minFallingPathSum(self, matrix: List[List[int]]) -> int:
        dp = [matrix[0]]
        n = len(matrix)
        for i in range(1, n):
            cur = [0] * n
            for j in range(n):
                mn = dp[-1][j]
                if j > 0:
                    mn = min(mn, dp[-1][j - 1])
                if j < n - 1:
                    mn = min(mn, dp[-1][j + 1])
                cur[j] = mn + matrix[i][j]
            dp.append(cur)
        return min(dp[-1])


来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/minimum-falling-path-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

永磁同步电机磁场定向控制(FOC)及Matlab/Simulink仿真分析

前言 做永磁同步电机控制绕不开FOC&#xff0c;本章节主要介绍FOC控制的基本原理、坐标变换以及永磁同步电机在同步旋转坐标系下的数学模型&#xff0c;并通过Matlab/Simulink进行永磁同步电机FOC控制算法的仿真分析。 01 FOC的基本原理 磁场定向控制&#xff08;Field-Ori…

分割3-转置卷积可逆吗?

上一话 分割2——语义分割评价指标https://blog.csdn.net/XiaoyYidiaodiao/article/details/125149509?spm1001.2014.3001.5502 转置卷积不是卷积的逆操作&#xff0c;并且转置卷积是卷积操作&#xff01; 这是因为普通卷积的操作图 1. 图1 其卷积可等效为图 2. 图2 其卷积操…

Offset Explorer2 监视kafka的利器

kafka作为一个生产者和消费者集为一体的框架&#xff0c;消费者必须一直保持打开的状态&#xff0c;并且每隔一段时间接收一次数据&#xff0c;才能够保持生产者放入的数据及时被处理掉&#xff0c;而生产者则可以每隔一段时间发送一波数据&#xff0c;这样消费者就能够接收到了…

Mysql搭建互为主从数据库

Mysql搭建互为主从数据库 一、搭建前期说明二、mysql文件结构以及配置说明1、mysqlA文件结构2、mysqlB文件结构3、mysqlA的配置文件my.cnf4、mysqlB的配置文件my.cnf5、启动mysqlA服务器脚本startMysqlA.sh6、启动mysqlB服务器脚本startMysqlB.sh7、查看服务启动情况 三、设置主…

【Redis】之缓存一致性

1、缓存一致性 对于使用 Redis 作为缓存来说&#xff0c;如何保证数据库和缓存数据一致性是个麻烦的问题。对于缓存和数据库的操作&#xff0c;主要有以下两种方式&#xff1a; 先删缓存&#xff0c;再更新数据库&#xff1b;先更新数据库&#xff0c;再删除缓存&#xff1b;…

【UE4 塔防游戏系列】02-基础设置

步骤 1. 新建一个蓝图&#xff0c;父类为游戏模式基础 命名为“TaFangGameMode” 2. 新建一个玩家控制器 命名为“TaFangGamePlayerController” 3. 在世界场景设置中&#xff0c;选择游戏覆盖模式为“TaFangGameMode” 默认Pawn类设为None&#xff0c;玩家控制器类选择“TaFa…

使用rest-assured框架优雅实现接口测试断言

对于接口测试来说&#xff0c;只判断响应状态码为200是远远不够的&#xff0c;我们经常必须去验证响应内容中的业务字段是否正确&#xff0c;本文将采用Rest-Assured框架来实现接口响应的判断。 1、接口信息的调试 当我们在做接口测试时&#xff0c;通常希望将接口的请求及响…

包装类(wrapper)

包装类(wrapper) 包装类和基本数据类型间的转换(Interger演示) public class WrapperType01 {public static void main(String[] args) {int a 10;// 手动封箱&#xff0c;Integer integer Integer.valueOf(a);System.out.println(integer);// 手动拆箱int i integer.intVa…

十五周算法训练营——岛屿问题

今天是十五周算法训练营的第十五周&#xff0c;主要讲岛屿问题专题。&#xff08;欢迎加入十五周算法训练营&#xff0c;与小伙伴一起卷算法&#xff09; 岛屿问题 一、题目 给你一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的的二维网格&#xff…

11. 利用Tomcat服务器配置HTTPS双向认定

文章目录 Tomcat配置HTTPS1.为服务器生成证书2.为客户端生成证书3.让服务器信任客户端证书4.将该文件导入到服务器的证书库&#xff0c;添加为一个信任证书使用命令如下&#xff1a;5.查看证书库6.让客户端信任服务器证书7.配置tomcat8.验证 Tomcat配置HTTPS 1.启动cmd控制台&…

分布式锁【分布式锁概述、业务介绍、创建SpringBoot项目】(一)-全面详解(学习总结---从入门到深化)

目录 分布式锁概述 分布式锁问题_业务介绍 分布式锁问题_创建SpringBoot项目 分布式锁概述 为什么需要分布式锁 在单机部署的系统中&#xff0c;使用线程锁来解决高并发的问题&#xff0c;多线程访问共享变量的问题达到数据一致性&#xff0c;如使用synchornized、 Reentran…

第一堂棒球课品牌设计·棒球1号位

需求背景 第一堂棒球课作为国内的创新体育课程&#xff0c;旨在为广大青少年提供一个更好的平台来接触并了解棒球这项运动。品牌的建设将影响到其在国内的认可度和知名度。在此背景下&#xff0c;我们的产品目标是为第一堂棒球课打造一个具有竞争力的品牌形象&#xff0c;满足…

基于jeecg-boot的nbcio-boot亿事达企业管理平台发布

目前这个演示系统与代码都同步&#xff0c;以后也尽量保持同步。 更多功能看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbacheng/nbcio-boot 前端代码&#xff1a;https://gitee.com/nbacheng/nbcio-vue.git 在线演示&#xff08;包括H5&#xff…

「Java核心技术大会 2023」6月启动,邀你共同探讨Java生态

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

数据结构 | 图的最短路径 Floyd算法

一、数据结构定义 typedef int VertexType; typedef int EdgeType;/*图*/ typedef struct {VertexType Vexs[SIZE]; //结点 EdgeType Edges[SIZE][SIZE]; //权值 int vexnum, arcnum; }MGraph;/*路径*/ typedef struct {int path[SIZE][SIZE];EdgeType length; }Path; 1.二维…

给父组件添加点击事件,点击时获取父组件的target

我想获取class为 mes-it 的dom元素结果每次拿到的 target都是子元素 查了查资料可以用 pointer-events: none; 来规避子元素成为target 就是上面图片style 里面的样式

【图灵奖得主Frederick P.Brooks, Jr.带你走进软件工程的世界——《人月神话》】

畅销业界48年的传奇经典 被引频次最高的软工神话 本书为复杂项目管理提供了极具洞察力的见解、发人深省的观点以及大量的软件工程实践。 直至今天&#xff0c;《人月神话》依然活跃在软件开发各个领域的话题中&#xff01; 我是一个书狂&#xff0c;积习甚深&#xff0c;费尽心…

Python自动化测试五大框架(测试员收藏夹必备)

自2018年被评选为编程语言以来&#xff0c;Python在各大排行榜上一直都是名列前茅。目前&#xff0c;它在Tiobe指数中排名第三个&#xff0c;仅次于Java和C。随着该编程语言的广泛使用&#xff0c;基于Python的自动化测试框架也应运而生&#xff0c;且不断发展与丰富。 因此&am…

PyQt5调用Window弹窗,选择文件、选择多个文件、选择文件夹、保存文件

前言 本篇在讲什么 PyQt5调取windows选择和导出弹窗 本篇适合什么 适合初学Python的小白 适合使用pyqt5的开发项目 本篇需要什么 对Python语法有简单认知 依赖Python3.7环境 依赖Pycharm编辑器 本篇的特色 具有全流程的图文教学 重实践&#xff0c;轻理论&#xf…

01. 找到数组的中间位置 ——【Leetcode每日一题】

1991. 找到数组的中间位置 难度&#xff1a;简单 给你一个下标从 0 开始的整数数组 nums &#xff0c;请你找到 最左边 的中间位置 middleIndex &#xff08;也就是所有可能中间位置下标最小的一个&#xff09;。 中间位置 middleIndex 是满足 nums[0] nums[1] … nums[m…