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

【从零开始的LeetCode-算法】945. 使数组唯一的最小增量

给你一个整数数组 nums 。每次 move 操作将会选择任意一个满足 0 <= i < nums.length 的下标 i,并将 nums[i] 递增 1

返回使 nums 中的每个值都变成唯一的所需要的最少操作次数。

生成的测试用例保证答案在 32 位整数范围内。

示例 1:

输入:nums = [1,2,2]
输出:1
解释:经过一次 move 操作,数组将变为 [1, 2, 3]。

示例 2:

输入:nums = [3,2,1,2,1,7]
输出:6
解释:经过 6 次 move 操作,数组将变为 [3, 4, 1, 2, 5, 7]。
可以看出 5 次或 5 次以下的 move 操作是不能让数组的每个值唯一的。

提示:

  • 1 <= nums.length <= 10^5

  • 0 <= nums[i] <= 10^5

我的解答

class Solution {public int minIncrementForUnique(int[] nums) {// 对数组进行排序Arrays.sort(nums);int res = 0;// 遍历排好序的数组for(int i = 1;i < nums.length; i++){// 如果当前元素等于上一元素,则该元素数值+1if(nums[i] == nums[i - 1]){nums[i]++;res++;}// 因为上面操作可能会打乱排好序的数组,所以需要处理错乱的元素// 如果当前元素小于上一元素(即排序错乱),则该元素数值需要增加至比前一元素的值要大// 即增加至比前一元素要大1的值,其操作次数为(上一元素的值 - 当前元素的值 + 1) else if(nums[i] < nums[i - 1]){res += nums[i - 1] - nums[i] + 1;nums[i] = nums[i - 1] + 1;}}return res;}
}

 

相关文章:

【从零开始的LeetCode-算法】945. 使数组唯一的最小增量

给你一个整数数组 nums 。每次 move 操作将会选择任意一个满足 0 < i < nums.length 的下标 i&#xff0c;并将 nums[i] 递增 1。 返回使 nums 中的每个值都变成唯一的所需要的最少操作次数。 生成的测试用例保证答案在 32 位整数范围内。 示例 1&#xff1a; 输入&am…...

Java程序设计:spring boot(2)

目录 1 Spring MVC 零配置创建与部署 1.1 创建Spring MVC Web⼯程 1.2 pom.xml 添加坐标相关配置 1.3 添加源代码 1.4 添加视图 1.5 SpringMVC 配置类添加 1.6 入口文件代码添加 1.7 部署与测试 2 Spring Boot 概念&特点 2.1 框架概念 2.2 框架特点 2.3 Spring…...

服务器运维监控平台

云监控平台-简介 一&#xff1a;简介 “phoenix” 是一个灵活可配置的开源监控平台&#xff0c;主要用于监控应用程序、服务器、docker、数据库、网络、tcp 端口和 http 接口&#xff0c;通过实时收集、汇聚和分析监控信息&#xff0c;实现在发现异常时立刻推送告警信息&…...

css中 global 和 deep(两个样式穿透) 区别

1.:global(selector)&#xff1a;这个伪类选择器会选择所有全局的、未被其他样式表覆盖的元素。换句话说&#xff0c;它会匹配所有没有被其他样式表&#xff08;例如内联样式或外部样式表&#xff09;所影响的元素。 :global(p) {color: red; }这段代码会将所有 <p> 元素…...

【星闪技术】WS63E模块的WiFi客户端测试

引言 我所计划的WS63E测试要实现MQTT联网&#xff0c;所以首先需要确保开发板连接WiFi。今天来测试一下WiFi功能。 程序分析 WiFi客户端的例子在src/application/samples/wifi/sta_sample目录下。这个例子看上去和hi3861的例子差不多。 这段程序是一个用于嵌入式设备的Wi-F…...

Android面试之5个Kotlin深度面试题:协程、密封类和高阶函数

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 面试题目1&#xff1a;Kotlin中的协程与线程的区别是什么&#xff1f;如何在Android中使用协程进行异步编程&#xff1f; 解答&#xff1a; 协…...

操作系统 和 初识进程

目录 操作系统&#xff08;OS&#xff09; 进程 操作系统&#xff08;OS&#xff09; 概念 操作系统即os&#xff0c;是一款软件。 任何计算机系统都包含一个基本的程序集合&#xff0c;称为操作系统(OS)。 操作系统的本质是一种进行软硬件管理的软件 笼统的理解&#xf…...

QT--Qlabel学习、获取文本和设置文本、文本对齐方式、文本换行、显示图片

QLabel 是 Qt 中的标签类&#xff0c;通常用于显示提示性的文本&#xff0c;也可以显示图像 对齐方式 用于设置标签中的内容在水平和垂直两个方向上的对齐方式&#xff0c;比如左对齐、右对齐、上对齐、下对齐、水平居中、垂直居中等。 // 获取和设置文本的对齐方式 Qt::Ali…...

深度学习:终身学习(Life-Long Learning)详解

终身学习&#xff08;Life-Long Learning&#xff09;详解 终身学习&#xff08;也称为持续学习或增量学习&#xff09;是机器学习中的一个重要研究领域&#xff0c;它关注如何使机器学习模型在完成一系列任务后&#xff0c;能够持续学习新任务&#xff0c;而不会忘记之前学到…...

前端UI框架

组件UI类 1.Element-Plus 2.uView 3.Vant 4.TDesign 5.uni-app 6.Tuniao-vue3 7. 可视化图标类 1.可视化图标VUE Data UI 2.Echart 图标库ICON 1.yesicon 2.Flaticon 3.Google Fonts 4.fontawesome 5.阿里巴巴 其他 1.CSS布局 2.web前端样式布局 3.中国色-颜色合集 托管…...

最佳副屏串流解决方案:如何低成本打造电脑拓展副屏?

如何低成本打造电脑拓展副屏&#xff1f;如果你有一台平板和一台电脑&#xff0c;想要提高打游戏、办公或是学习的效率。那么&#xff0c;使用网易GameViewer远程&#xff0c;就能帮你低成本打造电脑拓展副屏。 简单来说&#xff0c;副屏串流就是能让你多出一块显示屏。在打游戏…...

SQL Injection | SQL 注入概述

关注这个漏洞的其他相关笔记&#xff1a;SQL 注入漏洞 - 学习手册-CSDN博客 0x01&#xff1a;SQL 注入漏洞介绍 SQL 注入就是指 Web 应用程序对用户输入数据的合法性没有判断&#xff0c;前端传入后端的参数是可控的&#xff0c;并且参数会带入到数据库中执行&#xff0c;导致…...

【Linux 从基础到进阶】磁盘I/O性能调优

磁盘I/O性能调优 1. 引言 磁盘I/O性能是决定服务器整体性能的关键因素之一。磁盘I/O性能的瓶颈常常会影响数据库、文件系统以及虚拟化平台等关键应用的响应时间。因此&#xff0c;磁盘I/O调优是系统管理员不可忽视的任务。 本文将介绍影响磁盘I/O性能的主要因素&#xff0c;…...

浅谈AGI时代的“数据枢纽”——向量数据库

一、前言 人工智能的关键&#xff0c;不只是构建好算力、算法、模型&#xff0c;更重要的是做好数据的清洗、处理、挖掘等问题。一定程度上&#xff0c;智能时代&#xff0c;企业数据处理能力有多强&#xff0c;决定了业务发展的天花板有多高。 在企业数智化转型过程中&#x…...

生成 Excel 表列名称

Excel 大家都用过&#xff0c;它的列名是用字母编号的&#xff0c;A 表示第一列&#xff0c;B 表示第二列&#xff0c;AA 表示第27列&#xff0c;AB 表示第28列等等。 现给定一个数字&#xff0c;如何得到列名称呢。比如输入28&#xff0c;输出 AB。 一开始以为就是一个简单的…...

基于yolov10的烟雾明火检测森林火灾系统python源码+pytorch模型+评估指标曲线+精美GUI界面+数据集

【算法介绍】 基于YOLOv10的烟雾明火检测森林火灾系统是一种先进的火灾预警系统&#xff0c;它结合了深度学习和计算机视觉技术&#xff0c;能够实时检测和分析森林中的烟雾和明火&#xff0c;从而有效预防和控制森林火灾的发生。 该系统主要基于YOLOv10模型进行构建&#xf…...

UltraISO(软碟通)制作U盘制作Ubuntu20.04启动盘

目录 一、启动盘制作 1、工具准备 2、打开UltraISO后&#xff0c;点击左上角的文件&#xff0c;在打开的下拉项中&#xff0c;选择打开准备好的Ubuntu系统20.04 LTS镜像文件(ubuntu-20.04-desktop-amd64.iso)&#xff1b; 3、然后点击启动->写入硬盘映像 4、在弹出的窗…...

【EtherCAT实践篇一】TwinCAT 3安装、使用

TwinCAT 基于 PC 的开放式控制技术 倍福推出的基于 PC 的控制技术定义了自动化领域的全球标准。在软件方面&#xff0c;1996 年推出的 TwinCAT&#xff08;The Windows Control and Automation Technology&#xff0c;基于 Windows 的控制和自动化技术&#xff09;自动化套件是…...

4、CSS3笔记

文章目录 四、CSS3CSS3简介css3概述CSS3私有前缀什么是私有前缀为什么要有私有前缀常见浏览器私有前缀 CSS3基本语法CSS3新增长度单位CSS3新增颜色设置方式CSS3新增选择器CSS3新增盒模型相关属性box-sizing 怪异盒模型resize 调整盒子大小box-shadow 盒子阴影opacity 不透明度 …...

Docker无法拉取镜像解决办法

Docker 无法拉取镜像解决办法 一.现象描述 在docker拉取镜像的时候重复拉取镜像然后超时。 二.解决办法 1.配置国内镜像源地址加速 vi /etc/docker/daemon.json在文件中增加如下内容 { "registry-mirrors": ["https://docker.m.daocloud.io","h…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...