首页 > 其他分享 >力扣---1289. 下降路径最小和 II

力扣---1289. 下降路径最小和 II

时间:2023-08-10 17:22:05浏览次数:29  
标签:力扣 tem2 tem1 int 1289 --- grid min1 min2

给你一个 n x n 整数矩阵 grid ,请你返回 非零偏移下降路径 数字和的最小值。

非零偏移下降路径 定义为:从 grid 数组中的每一行选择一个数字,且按顺序选出来的数字中,相邻数字不在原数组的同一列。

 

示例 1:

输入:grid = [[1,2,3],[4,5,6],[7,8,9]]
输出:13
解释:
所有非零偏移下降路径包括:
[1,5,9], [1,5,7], [1,6,7], [1,6,8],
[2,4,8], [2,4,9], [2,6,7], [2,6,8],
[3,4,8], [3,4,9], [3,5,7], [3,5,9]
下降路径中数字和最小的是 [1,5,7] ,所以答案是 13 。

示例 2:

输入:grid = [[7]]
输出:7

 

提示:

  • n == grid.length == grid[i].length
  • 1 <= n <= 200
  • -99 <= grid[i][j] <= 99

 

动态规划,当前位置的答案,等于上一层的最小值(不能和当前位置同一列,所以当同一列后,应该用次小值)

用两个变量分别存储上一层的最小值和次小值,然后对当前层进行处理并存储。

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

 

标签:力扣,tem2,tem1,int,1289,---,grid,min1,min2
From: https://www.cnblogs.com/allWu/p/17620957.html

相关文章

  • 解决mysqladmin flush-hosts
    1、提高允许的max_connect_errors数量(治标不治本)a.命令行修改 修改max_connection_errors的数量为1000 mysql-h123.57.78.101-P3306-uroot-p123456 setglobalmax_connect_errors=1000; showvariableslike‘%max_connect_errors%’;b.配置文件修改 登陆进入M......
  • Java入门题-计算平均成绩、总分、最高/低分
    题目:输入8位学生的成绩,计算总分、平均分、最高分、最低分 重点:使用数组、循环、四舍五入 代码:引用 importjava.util.Scanner;  int[]student_soure=newint[8];for(inti=0;i<student_soure.length;i++){System.out.println("请输入第"+i+"位学生......
  • 【GIS - 地理信息系统】经纬度计算 ( 经度、纬度概念 | 地球周长计算 | 地球经线周长
    文章目录一、经度、纬度概念二、地球周长计算1、地球半径、周长计算2、地球经线周长计算3、地球纬线周长计算三、经纬度相关计算1、经纬度坐标距离计算公式2、经纬度与实际距离换算1米对应经度1米对应纬度3、实际距离与经纬度换算1度经度对应东西距离1度纬度对应南北距离四、......
  • Linux下搭建Nginx+nginx-rtmp-module流媒体服务器
    今天我们使用的是linux系统为Centos64位服务器。下载安装nginx首先新建nginx目录存放nginx:mkdirnginx1然后进入nginx目录分别下载nginx及nginx-rtmp-module:进入nginx目录cdnginx下载nginxwgethttp://nginx.org/download/nginx-1.17.9.tar.gz下载nginx-rtmp-modulehttps://codel......
  • i7-14700K出现了!14代酷睿就它最良心 轻松跑到6.3GHz
    Intel14代酷睿(RaptorLakeRefresh)家族中,i9、i5、i3全都是提升频率为主,核心数量不变,唯有i7系列8+8核心升级到8+12核心,最为良心。现在,我们第一次看到了i7-14700K实机运行的情况,虽然只有BIOS界面,但惊喜不小。可以看到,i7-14700K运行在一块微星MPGZ690EDGETIWIFIDDR4主板上......
  • 数据库-etcd备份恢复
    1.member下数据说明:snap:存放快照数据,etcd防止WAL文件过多而设置的快照,存储etcd数据状态wal:存放预写式日志,最大的作用是记录了整个数据变化的全部历程。在etcd中,所有数据的修改在提交前,都要先写入到WAL中 2.备份,只需要备份其中一台etcdexportETCDCTL_API=3/home/s/bin/etc......
  • CSP模拟-17
    前言仔细想了想,考试的时候其实对正解有些思路,但自己认为正确性有问题,所以没这么写,大寄,考了倒2,呜呜呜┭┮﹏┭┮T1弹珠游戏下面的匹配的含义:\(R\)的匹配指\(G,B\),其中\(R\)为被匹配字母,\(G,B\)为匹配字母;\(G\)的匹配指\(R,B\)以此类推。我们用把每个人现在手里的牌用十......
  • 有效的括号--LeetCode算法
    不用map的解法publicbooleanisValid(Strings){//输入的字符串为空,直接返回trueif(s.isEmpty())returntrue;//新建一个栈Stack<Character>stack=newStack<Character>();//遍历传入的字符串//如果时"(","{","["就......
  • 【CV夏季划】2021年有三AI-CV夏季划出炉,冲刺秋招,从CV基础到模型优化彻底掌握...
    2021年的有三AI-CV夏季划正式发布,并且这也是最后一届由言有三本人直接带领的夏季划小组,仅限于今年。有三AI-CV夏季划是言有三直接一对一带领的深度学习和计算机视觉学习计划小组,目标是在新手入门的基础之上,彻底掌握好CV的重要方向,同时提升模型设计与优化的工程代码经验。什么是有三......
  • WebDAV之π-Disk派盘+Joplin
    Joplin是一个优秀的开源笔记,可以组织到笔记本中的大量笔记和文本编辑器中进行复制,标记和修改。支持Evernote的笔记直接导入到Joplin应用程序中。Joplin还支持各种云服务同步,包括Dropbox、OneDrive、WebDAV或文件系统,方便对其进行检查、备份和移动。该应用程序可用于Windows,Linux,mac......