【LeetCode】第453题——最小操作次数使数组元素相等(难度:简单)

该博客介绍了LeetCode第453题的解决方案,通过转换问题的角度,从每次增加n-1个元素到让1个元素减少,得出最小操作次数为将所有元素减小到最小值。解题思路简洁明了,通过示例解释了如何在3次操作内将数组[1, 2, 3]变为[1, 1, 1]。" 107785505,9132148,深入理解SpringCloud:Eureka详解与实战,"['分布式', '微服务', '服务治理', 'Eureka Server', 'SpringCloud']
摘要由CSDN通过智能技术生成

【LeetCode】第453题——最小操作次数使数组元素相等(难度:简单)

题目描述

给定一个长度为 n 的 非空 整数数组,每次操作将会使 n - 1 个元素增加 1。找出让数组所有元素相等的最小操作次数。

  1. 示例:
    输入:[1,2,3]
    输出:3
    解释:只需要3次操作(注意每次操作会增加两个元素的值):
    [1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-moves-to-equal-array-elements
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路

这道题看起来很复杂,但实际上用数学的思路来想,会十分简单。

说是要将n-1个元素均增加1,换个角度想一下,不就是让剩余的这1个元素建减少1吗?

也就是该问题也就转换成了:每次将1个元素减1,使用最少的操作次数将所有元素相等。

这下就豁然开朗了,找到该数组中最小的那个元素,其它元素均减少至该值即可。示例的[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]也可变成 [1,2,3] => [1,1,3] => [1,1,2] => [1,1,1],同样需要三步。

代码详解


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值