hot100:数组——56、64

56. 合并区间

首先考虑只有两个区间的情况:
在这里插入图片描述
但是这6种情况可以合并成3种情况,就是上面的3种。首先先判断第一个区间的起始位置是否小于等于第二个区间的起始位置。如果不成立,则交换两个区间。

再考虑n个区间的情况,先将他们根据区间的起始位置排序,然后两两进行合并。

class Solution {
    public int[][] merge(int[][] intervals) {
        Arrays.sort(intervals,(v,v1)->v[0]-v1[0]);
        int[][] res=new int[intervals.length][2];//
        int index=-1;
        for(int[] interval:intervals){
            if(index==-1||res[index][1]<interval[0]){
                res[++index]=interval;
            }else{
                res[index][1]=Math.max(res[index][1],interval[1]);
            }
        }
        return Arrays.copyOf(res,index+1);//
    }
}

【补充】
1、copyOf(T[] original, int newLength)方法:original——需要拷贝的原始数组;newLength——拷贝元素长度,如果超出原始数组的长度则补充默认值,如int型则补充0
2、在创建二维数组时,可以省略列的参数,但是不能省略行的参数
在这里插入图片描述

64. 最小路径和

这道题并不一定非要走直线,只要是每次都是向右或向下就行,要注意审题。
条件:
题目要求,只能向右或向下走,换句话说,当前单元格 (i,j) 只能从左方单元格 (i−1,j) 或上方单元格 (i,j−1)走到,因此只需要考虑矩阵左边界和上边界。
走到当前单元格 (i,j)的最小路径和 = “从左方单元格 (i−1,j)与 从上方单元格 (i,j−1)走来的 两个最小路径和中较小的 ” + 当前单元格值 grid[i][j]。具体分为以下 4 种情况:
当左边和上边都不是矩阵边界时: 即当i≠0i , j≠0时,dp[i][j]=min(dp[i−1][j],dp[i][j−1])+grid[i][j];
当只有左边是矩阵边界时: 只能从上面来,即当i=0,j≠0时, dp[i][j]=dp[i][j−1]+grid[i][j];
当只有上边是矩阵边界时: 只能从左面来,即当i≠0,j=0时, dp[i][j]=dp[i−1][j]+grid[i][j];
当左边和上边都是矩阵边界时: 即当i=0,j=0时,其实就是起点, dp[i][j]=grid[i][j];

class Solution {
    public int minPathSum(int[][] grid) {
        for(int i=0;i<grid.length;i++){
            for(int j=0;j<grid[0].length;j++){
                if(i==0&&j==0){
                    grid[i][j]=grid[i][j];
                }else if(i==0){
                    grid[i][j]=grid[i][j-1]+grid[i][j];
                }else if(j==0){
                    grid[i][j]=grid[i-1][j]+grid[i][j];
                }else{
                    grid[i][j]=Math.min(grid[i-1][j],grid[i][j-1])+grid[i][j];
                }
            }
        }
        return grid[grid.length-1][grid[0].length-1];
    }
}

不用创建一个新的二维数组来存储求得的和,直接遍历 grid[i][j]修改即可。这是因为:grid[i][j] = min(grid[i - 1][j], grid[i][j - 1]) + grid[i][j] ;原 grid矩阵元素中被覆盖为 dp 元素后(都处于当前遍历点的左上方),不会再被使用到。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

centos7查看磁盘io

1.查看所使用到的命令为iostat&#xff0c;centos7没有自带iostat&#xff0c;需要安装一下 2.安装iostat命令 yum -y install sysstat 3.使用iostat命令 iostat %user&#xff1a;表示用户空间进程使用 CPU 时间的百分比 %nice&#xff1a;表示用户空间进程以降低优先级的…

门禁系统中人脸检测技术的原理剖析和使用教程

引言 人脸检测 API 是一种基于深度学习技术的图像处理API&#xff0c;可以快速地检测出一张图片中的人脸&#xff0c;并返回人脸的位置和关键点坐标&#xff0c;在人脸识别系统、人脸情绪识别等多种场景下都有极大的应用。 本文将从人脸检测的发展历程、原理、特点等角度出发…

学习笔记:《Foundation models for generalist medical artificial intelligence》

目录 一、GMAI模型的概念与优势 二、GMAI模型面临的挑战 1.验证 2.社会偏见 3.隐私 4.规模 5.技术挑战 三、结论&#xff1a; 参考文献 最近在《Nature》杂志上发表的一篇名为《Foundation models for generalist medical artificial intelligence》的文章&#xff0c…

Flutter 布局探索 | 如何分析尺寸和约束

theme: cyanosis 前言 本文来分享一下&#xff0c;通过查看源码和布局信息解决的一个实际中的布局小问题&#xff0c;也希望通过本文的分享&#xff0c;当你遇到布局问题时&#xff0c;可以靠自己的脑子和双手解决问题。 如下所示&#xff0c;将 TextField 作为 AppBar 组件的 …

拆解Open ODS View和HANA Composite Provider

这两个也不是新面孔了。 那么OODS和HCPR到底他俩怎么用&#xff1f;既然大家都是虚拟的&#xff0c;不占地方。那这俩infoprovider到底有啥区别&#xff1f; 首先就是目的不同。 HCPR是可以用Union和Join。也就是老的Multiprovider和InfoSet。Union就是说两个数据集的行能被…

【OS实验】【学习笔记】

文章目录 零、实验参考实验1 熟悉实验环境实验2 操作系统的引导实验3 系统调用实验4 进程运行轨迹的跟踪与统计实验5 基于内核栈切换的进程切换实验6 信号量的实现和应用实验7 地址映射与共享实验8 终端设备的控制实验9 proc文件系统的实现Reference 零、实验参考 &#x1f52…

【华为机考】专题突破 第一周:单调栈 739 、503 、901、84

刷题顺序参考于 《2023华为机考刷题指南&#xff1a;八周机考速通车》 前言 单调栈&#xff1a;分为单调递增和单调递减栈。(栈内元素成递增或者递减性)&#xff1a; 单调递增栈&#xff1a;从栈底到栈顶数据是从大到小&#xff0c;即 栈内的元素从栈顶 到栈底 是递增的&#x…

【手把手刷CCF】202303-2-垦田计划100分(超简单思路,含详细解释注释与代码)

文章目录&#xff1a; 故事的开头总是极尽温柔&#xff0c;故事会一直温柔……&#x1f49c;一、&#x1f333;代码如下&#xff1a;二、&#x1f335;解题思路❤️❤️❤️忙碌的敲代码也不要忘了浪漫鸭&#xff01; 故事的开头总是极尽温柔&#xff0c;故事会一直温柔……&am…

SpringBoot集成WebSocket实现及时通讯聊天功能!!!

1&#xff1a;在SpringBoot的pom.xml文件里添加依赖: <!-- websocket --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency> 2&#xff1a;在配置中…

java 拼接字符串的方法

1.拼接字符串的方法&#xff0c;先要将字符串转化为数字类型&#xff0c;再根据需要拼接。这样可以避免直接拼接导致的错误。 2.将字符串转化为数字类型&#xff0c;这个就是一个循环。可以使用循环的方法&#xff0c;但是循环次数不宜太多&#xff0c;否则容易出错。 3.可以使…

ERTEC200P-2 PROFINET设备完全开发手册(7-1)

7. 配置模块及自定义模块 7.1.1 PN设备的基本模型 初次接触PN的开发者&#xff0c;最容易出现的错误就是设备的实际配置与TIA的组态不一致。为了开发的过程更加顺利&#xff0c;非常有必要掌握PN设备的基础模型。PN设备的基本模型如下图描述&#xff1a; PN设备的基本构成是插…

论文的总体结构及质量控制

要写出一篇高质量AI领域的论文&#xff0c;首先要搞清楚论文由哪几部分组成&#xff0c;即论文的总体结构。同时&#xff0c;还要了解AI论文的质量评价与质量控制的指标。这样做的目的是为了弄明白AI论文的结构以及什么样的AI论文才是好的论文。 通常一篇AI论文的总体结构主…

ZVL3网络分析仪

ZVL3 Rohde&Schwarz ZVL3 3G矢量网络分析仪|罗德与施瓦茨 9KHz至3GHz 罗德与施瓦茨Rohde&Schwarz 性能特点&#xff1a; 频率范围 9kHz至3GHz/6 GHz(典型值为5kHz) 测量时间(201个测量点&#xff0c;以校准的双端口) <75ms 数据传输(201个测量点) 在100Mbit/sLAN…

DFS与BFS|树与图的遍历:拓扑排序

深度优先搜索DFS DFS每次往最深处搜&#xff0c;搜到叶子节点就返回&#xff0c;然后继续搜&#xff0c;特点&#xff1a;走到头才返回&#xff0c;返回并不是返回最开始&#xff0c;而是每次返回上一层之后&#xff0c;再看这一层能不能往下搜 DFS有回溯和剪枝。返回上一层的过…

OpenCV实例(七)汽车检测

OpenCV实例&#xff08;七&#xff09;汽车检测 1.概述2.代码实例3.代码功能 作者&#xff1a;Xiou 1.概述 对于图像和视频检测中的目标类型并没有具体限制&#xff0c;但是&#xff0c;为了使结果的准确度在可接受范围内&#xff0c;需要一个足够大的数据集&#xff0c;包括…

《Spring MVC》 第四章 域对象、视图、转发和重定向

前言 介绍Spring MVC的域对象、视图、转发和重定向 1、域对象共享数据 Spring MVC 提供了多种域对象共享数据的方式&#xff0c;其中最常用的方式如下&#xff1a; 1.1、使用 Servlet API 向 request 域对象中共享数据 服务端代码&#xff1a; RequestMapping("toLo…

为什么企业都需要搭建搭建一个内部知识库?

企业内部知识管理是指企业通过各种手段收集、整理、管理和传播企业内部的知识&#xff0c;以提高企业的竞争力和创新能力。在实践中&#xff0c;企业内部知识管理往往需要建立一个内部知识库&#xff0c;以更好地实现知识的共享和管理。本文将从以下几个方面探讨为什么企业内部…

【SWAT水文模型】ArcSWAT输入准备

ArcSWAT输入准备 1 必需的ArcSWAT空间数据集1.1 数字高程模型&#xff08;DEM&#xff09;1.2 土地覆盖/土地利用类型1.3 土壤数据 2 可选的ArcSWAT空间数据集2.1 DEM Mask2.2 Streams2.3 User- Defined Watersheds 3 ArcSWAT表格和文本文件3.1 子流域出口位置表(dBase 表)3.2 …

掏空腰包,日子难过,机缘转岗软件测试,这100个日夜的心酸只有自己知道...

我今年27岁&#xff0c;原本从事着土木工程相关的工作&#xff0c;19年开始有了转行的想法... 大学刚毕业那年&#xff0c;我由于学的是土木工程专业&#xff0c;自然而然的从事了和土木工程相关的工作&#xff0c;房贷、车贷&#xff0c;在经济的高压下&#xff0c;当代社会许…

Idea 配置 maven 离线使用

首先&#xff0c;项目中的依赖已经下载到本地仓库&#xff0c;在没有网络或者没办法连通公司的maven仓库时&#xff0c;需要配置离线使用。 1. 配置 setting.xml 在 maven 使用的 setting.xml 文件中&#xff0c;加入以下配置。 默认在 maven安装目录下的 conf 文件夹下 。 &…
最新文章