ARTS 第一期

news2024/11/16 7:00:03

Algorithm

本周刷的算法是:57. 插入区间

这道算法对我来说很有意义,为什么? 因为这一道算法让我意识到我之前写的算法都是「混」过来的,理解根本不到位,怎么解决?重复的刷之前写过的重要的算法,仔细思考

给你一个 无重叠的 ,按照区间起始端点排序的区间列表。

在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。

示例 1:

输入:intervals = [[1,3],[6,9]], newInterval = [2,5]
输出:[[1,5],[6,9]]
示例 2:

输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]
输出:[[1,2],[3,10],[12,16]]
解释:这是因为新的区间 [4,8] 与 [3,5],[6,7],[8,10] 重叠。
示例 3:

输入:intervals = [], newInterval = [5,7]
输出:[[5,7]]
示例 4:

输入:intervals = [[1,5]], newInterval = [2,3]
输出:[[1,5]]
示例 5:

输入:intervals = [[1,5]], newInterval = [2,7]
输出:[[1,7]]

解答:

首先来看一下下面的图
在这里插入图片描述

可以发现,分为 3 部分

  • 左边不重叠的区间

  • 中间重叠的区间

  • 右边不重叠的区间

那么主要的问题就是,这几个区间的如何进行区分 ?

首先左边不重叠的区间,我们可以很容易想到: 绿区间的 右边 < 蓝区间的左边

然后呢, 如何区分中间的重叠区间?首先我们需要明白,如果是已经经过了上面的判断到达需要判断是不是重叠的时候,隐含的条件就是 已经存在至少一个重复的部分 所以我们主要的目标就是这个重叠的区间在什么时候结束,看上图我们发现在 8 位置的时候刚好结束重叠,那么我们就明白了 这里的条件就是:经过上一个条件的过滤 + 绿区间的 左边 <= 蓝区间的 右边 (我们这里需要的是重复的部分, 绿区间的 左边 >= 蓝区间的 右边 这个条件是刚好不重复的条件,所以需要取反) 。

最后一部分也是相对简单的,只要到能到这里那么就一定是 右边不重叠的部分了。

class Solution {
    public int[][] insert(int[][] intervals, int[] newInterval) {
        // 结果集合,当插入的数组完全没有交集的时候就需要  intervals.length + 1 长度的数组
        // 但是也会又重复的情况,所以我们需要定义一个 index 计算一下有几个
        int[][] res = new int[intervals.length + 1][2];
        int index = 0;
         // 工具人
        int i = 0;
        while (i < intervals.length && intervals[i][1] < newInterval[0]) {
            res[index++] = intervals[i++];
        }
        // 循环判断,最小的左边界和最大的右边界
        while (i < intervals.length && intervals[i][0] <= newInterval[1]) {
            newInterval[0] = Math.min(newInterval[0], intervals[i][0]);
            newInterval[1] = Math.max(newInterval[1], intervals[i][1]);
            i++;
        }
        res[index++] = newInterval;
        while (i < intervals.length) {
            res[index++] = intervals[i++];
        }
        // 放入几次就取对应的长度的数组
        return Arrays.copyOf(res, index);
    }
}

Review

https://www.quora.com/What-are-some-of-the-most-basic-things-every-programmer-should-know

这篇文章分享的是作者的一些编码上的见解

  1. 测试非常重要,就比如我上线 伙伴匹配系统的时候,我本地稍微测试了一下对应的接口,但是没做线上测试,导致上线之后出现了很多问题:不能正常显示队伍、不能修改队伍信息…

  2. 写的不好的代码最大的代价就是维护,我现在还没有很深的体会

  3. 代码的格式很重要。虽然 Java 不强制要求格式,但是我的第一位编程老师给我们说格式非常重要,我现在代码的格式还算规范

  4. 世界上不存在 5 分钟的工作。总是至少需要半天时间

Technique/Tips

找 bug 不要局限在国内,要善于使用英文进行搜索,或许会有意想不到的结果(毕竟写代码的大部分都说英文)

可以使用 github desktop 进行代码上传,但是好像不能正常的添加 .ignore 的文件,所以我们可以使用 idea 上面的 git 工具进行 commit 自己需要被 push 的代码,其他的文件,比如 application-prod.yml 文件不要上传到 GitHub 上面

Share

有时候我感觉很累很累,干某件事非常反人性,但是最近我看来一本书「纳瓦尔宝典」里面就提到了,其实很多时候我们感觉很累,很难受其实主要是因为我们的在干某一件事情之前,大脑就会向是非常累、难受,所以就算我们开始做事情的时候我们就会陷入到内耗。但是在「纳瓦尔宝典」之中作者就说,其实大脑在欺骗我们,干这些事情的时候其实并没有非常的难受,在这本书之中,作者就说你可以尝试洗一洗冷水澡,会发现皮肤没有碰到冷水的时候自己是「最冷的」,反而碰到之后就没这么冷。

所以,我就通过这本书,明白了其实很多事情其实没什么,比如每周读一读英文文章

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

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

相关文章

ppt 作图 如何生成eps格式

需求 ppt中画的图&#xff0c;按照eps格式导出。 环境 软件: ppt, Gsview(用来将ps格式转成eps), Adobe 操作系统&#xff1a; win11 思路 直接在ppt里选择adobe打印机&#xff0c;将图片以文件形式打印到ps格式的文件中&#xff0c;再由gsview转化成eps。 建议在本身就…

程序员去银行咋样?

Q&#xff1a;秦老师长期在金融比如银行领域。能不能从市场和行业情况给大家做一下分析。30-35岁的程序员如何做选择&#xff0c;加入甲方还是乙方&#xff1f;有哪些考量纬度&#xff1f; A&#xff1a;谢邀&#xff0c;简单讲讲我在银行IT领域工作了十来年的一些经验心得。 …

Windows10电脑环境变量(path)怎么进行列表显示?

Windows10电脑环境变量&#xff08;path&#xff09;怎么进行列表显示&#xff1f; 环境变量是一行显示 今天配置环境变量的时候&#xff0c;发现环境变量是一行显示&#xff0c;惊呆了&#xff0c;电脑配置的东西太多&#xff0c;如果修改之前的环境变量&#xff0c;需要一个字…

Prometheus-监控Mysql进阶用法(1)(安装配置)

阿丹&#xff1a; 在开发和生产环境中有可能会出现慢mysql等问题&#xff0c;那么这里就需要我们优秀的程序员来进行监控和解决&#xff0c;那么如何借助云原生的监控系统来完成这个操作呢&#xff1f; 环境描述&#xff1a; 使用一台空白的阿里云服务器2核4G。 服务器基本安装…

uni-app:循环数据点击事件获取每行指定数据(获取参数)

效果 页面样式 点击首行控制台输出信息 代码 :data-id"item.id"&#xff1a;定义id信息&#xff0c;在点击事件时e.currentTarget.dataset.id获取点击行的id :data-index"index"&#xff1a;定义index信息&#xff0c;在点击事件时e.currentTarget.datase…

Spring实例化源码解析之ClassPathBeanDefinitionScanner(五)

Spring实例化源码解析之ClassPathBeanDefinitionScanner(五) 上一章我们分析了ComponentScanAnnotationParser&#xff0c;主要就是分析了ComponentScan注解内的属性和属性的作用&#xff0c;而注解解析的信息会交给ClassPathBeanDefinitionScanner扫描器使用&#xff0c;也就…

运动控制:步进电机

在机械设计中&#xff0c;我们经常用到步进电机。 比如&#xff0c;用步进电机驱动同步带轴&#xff0c;实现直线运动。 再比如&#xff0c;用步进电机驱动滚珠丝杠轴&#xff0c;也可以把旋转运动转换为直线运动。 因为不需要反馈系统&#xff0c;所以步进电机的最大优点是…

【ESP32 + Edge Impulse平台】运行AI算法模拟多传感器数据融合实现异常检测

本篇博文主要以ESP32+MQ Sensor 气体传感器为例,通过连接 Edge Impulse 平台,实现数据的实时采集和训练,进而实现在嵌入式设备上部署 ML 机器学习。本教程介绍如何使用 Edge Impulse 和机器学习来实现ESP32 异常检测系统,系统使用一个机器学习模型,检测气体何时出现异常。…

基于自动化设备和现代化仓储精益管理思想开发的仓库管理系统

一、开源项目简介 立体仓库WMS deer-wms是基于自动化输送线、机械臂、点数机、提升机、堆垛机等自动化设备和现代化仓储精益管理思想开发出来的仓库管理系统。通过对接工厂的EBS(erp中一种)、MES&#xff08;生产执行系统&#xff09;、deer-wcs&#xff08;设备调度系统&…

分类预测 | MATLAB实现WOA-FS-SVM鲸鱼算法同步优化特征选择结合支持向量机分类预测

分类预测 | MATLAB实现WOA-FS-SVM鲸鱼算法同步优化特征选择结合支持向量机分类预测 目录 分类预测 | MATLAB实现WOA-FS-SVM鲸鱼算法同步优化特征选择结合支持向量机分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 MATLAB实现WOA-FS-SVM鲸鱼算法同步优化特征选择结…

tortoiseSVN树冲突解决方案

方案一&#xff1a; 手动导出 trunk 上的文件(夹)&#xff0c;把本地目录文件(夹)删了并替换成 trunk上的&#xff0c;再点击测试合并方案二&#xff1a; 如果执行了方案一还是冲突&#xff0c;确认本地和trunk文件一致后&#xff0c;可以跳过冲突的revision

numpy中的keepdims参数

numpy.mean,sum,max,min等函数中都有keepdims这个参数&#xff0c;这个参数的作用&#xff1a; 当 keepidmsTrue,保持其二维或者三维的特性,(结果保持其原来维数) 默认为 False,不保持其二维或者三维的特性.(结果不保持其原来维数) 假设我们有一个二维数组A&#xff0c;其中A的…

什么人适合学NPDP产品经理认证?

NPDP产品经理认证&#xff0c;最适合学的就是产品经理了&#xff0c;但是证书没有局限性&#xff0c;适用于所有与产品开发相关的行业和领域&#xff0c;特别是那些需要提高产品成功率和效率的团队成员。就是一句话&#xff0c;只要你觉得有用&#xff0c;都可以考。 通过学习N…

k8s的入门和项目部署

1、k8s简介 1.1 k8s是什么 kubernetes&#xff0c;希腊文中舵手的意思&#xff0c;简称K8s&#xff0c;是Google开源的容器编排引擎。在Docker容器引擎的基础上&#xff0c;为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能&#xff0c;提高了大规…

打造卓越摄影作品,尽享专业级编辑体验——DxO PhotoLab 7 for Mac

DxO PhotoLab 7 for Mac 是一款功能强大的专业照片编辑软件&#xff0c;为摄影爱好者和专业摄影师提供了优秀的工具和功能&#xff0c;让您能够轻松打造卓越的摄影作品并实现专业级的编辑效果。 DxO PhotoLab 7 提供了一套先进的图像处理算法&#xff0c;能够准确地还原照片的…

最近很火的AIGC人工智能之AI赋能运营(巧用ChatGPT轻松上手新媒体)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

打造香港最安全便捷的银行,众安银行发布首份技术白皮书

作者&#xff1a;林海宾&李龙 作为香港金融科技的代表&#xff0c;香港虚拟银行通过科技驱动&#xff0c;为客户提供了安全、便捷、普惠的金融服务。在八间持牌的虚拟银行中&#xff0c;众安银行目前在用户数量、存款、资产和收入规模上均处于领先水平。最快120秒线上开户…

基于微信小程序的新闻发布平台小程序设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能&#xff1a;具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

4700 万美元损失,Xn00d 合约漏洞攻击事件分析

4700 万美元损失&#xff0c;Xn00d 合约漏洞攻击事件分析 基础知识 ERC777 ERC777 是 ERC20 标准的高级代币标准&#xff0c;要提供了一些新的功能&#xff1a;运营商及钩子。 运营商功能。通过此功能能够允许第三方账户代表某一合约或者地址 进行代币的发送交易钩子功能。…

怎么选择伪原创工具?伪原创工具推荐

什么是伪原创工具&#xff1f;伪原创工具是一种可以将已有文本进行修改、改写或重新组合&#xff0c;生成新的文本内容的工具。 伪原创工具的作用 节省时间和精力&#xff1a;手工创作内容需要耗费大量时间和精力&#xff0c;而伪原创工具可以在短时间内生成大量内容&#xf…