leetcode中如何使数组唯一的最小增量
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,小编给大家分享一下leetcode中如何使数组唯一的最小增量,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!leetcode
千家信息网最后更新 2025年01月23日leetcode中如何使数组唯一的最小增量
小编给大家分享一下leetcode中如何使数组唯一的最小增量,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
leetcode 每日一题
使数组唯一的最小增量
给定整数数组 A,每次 move 操作将会选择任意 A[i],并将其递增 1。
返回使 A 中的每个值都是唯一的最少操作次数。
示例 1:
输入:[1,2,2]
输出:1
解释:经过一次 move 操作,数组将变为 [1, 2, 3]。
示例 2:
输入:[3,2,1,2,1,7]
输出:6
解释:经过 6 次 move 操作,数组将变为 [3, 4, 1, 2, 5, 7]。
可以看出 5 次或 5 次以下的 move 操作是不能让数组的每个值唯一的。
提示:0 <= A.length <= 400000 <= A[i] < 40000
思路:
排序后,每个元素都看看是否有重复元素,如果没有重复元素,就pass,有重复元素,就+1
排序后,其实就是前后两个元素进行比较,如果前者小于或者不等于后者,则继续,如果后者小于或者等于前者,则需要对元素进行处理
class Solution:
def minIncrementForUnique(self, A: List[int]) -> int:
if A is None or len(A) < 1:
return 0
length = len(A)
res = 0
A.sort()
'''
# 每个元素看列表中是否有重复元素
# 复杂度太高,超时不通过
for i in range(length):
value = A[i]
while self.uniq(A, value) is False:
value = value + 1
res += 1
A[i] = value
return res
'''
# 排序后,只要后面的一个比前面的一个大就略过
# 小于等于的话就需要变得比它大
for i in range(1, length):
if A[i] <= A[i-1]:
res += A[i-1] - A[i] + 1
A[i] = A[i-1] + 1 # 加1即可
return res
def uniq(self, A, value):
count = 0
for v in A:
if v == value:
count += 1
if count > 1:
return False
else:
return True
以上是"leetcode中如何使数组唯一的最小增量"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
元素
数组
最小
增量
篇文章
排序
内容
示例
解释
输入
输出
复杂
不怎么
两个
复杂度
大部分
就是
思路
整数
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术属于几次工业革命
软件开发成本表估算
旗胜网络技术服务有限公司
51优品软件开发
存储控制机制实现数据库安全的
有什么分析股票的软件开发
小赢科技获批互联网小贷
lol韩服数据库
调度数据网网络管理服务器
连接my sql服务器的指令
网络安全技术部门
福建网络安全管理系统
服务器安全工作谁负责
网络ntp服务器
服务器刷新
数据库加密技术原理
四种域名服务器是什么
中山宇天网络技术有限公司
还行网络技术
上海新车环保认证服务器异常
最终幻想14进入不了服务器
网络安全解说
51优品软件开发
高级数据库技术和应用的心得
合肥信息软件开发公司
山西it软件开发销售价格
怎样清除苹果健康里的数据库
cg插件都用什么软件开发
如何自己搭建云端数据库
卓凡数据库是啥