bbin 2026-03-25: 最小操作次数使数组元素极度Ⅲ。用go话语, 给你一个

你不错进行如下操作:每次罗致数组中的某一个位置 i,把该元素 nums[i] 的值加多 1。
打算是:经过若干次操作后,让数组里扫数元素齐形成澌灭个疏导的数。
问:为了使扫数元素极度,所需的最少操作次数是几许?
1
1
输入: nums = [2,1,3]。
输出: 3。
评释:
使扫数元素极度的操作如下:
将 nums[0] = 2 加多 1, 变为 3。
将 nums[1] = 1 加多 1, 变为 2。
将 nums[1] = 2 加多 1, 变为 3。
当今,nums 中的扫数元素齐等于 3。最小总操作次数为 3。
题目来独力扣3736。
一、题目中枢章程
1. 操作模式:只可给数组里的数字加1,不可减、不可替换,每次加1算1次操作;
2. 打算:让数组所少见字形成澌灭个数,求最少需要几许次操作;
3. 重要论断:要让操作次数最少,必须把所少见字齐加到数组里的最大值(因为加比最大值小的数,需要减少大数,不得当只可加1的章程;加比最大值大的数,操作次数会变多)。
二、以输入 nums = [2,1,3] 为例,分步调拆解历程
步调1:找到数组中的最大值
数组是 [2,1,3],三个数字鉴别是2、1、3,其中最大值是3。
这即是咱们要把所少见字齐形成的打算数。
步调2:测度数组扫数元素的总数
数组元素:2 + 1 + 3 = 总数为6。
步调3:测度「最大值 × 数组长度」
数组长度是3(一共3个数字),最大值是3,波音体育官方网站
是以 3 × 3 = 9。
这个数值的含义:要是数组里3个数字齐全是最大值3,总数即是9。
步调4:测度最少操作次数
用「全是最大值的总数」减去「原数组的总数」,差值即是总操作次数:
三、通用解题逻辑(所少见组齐适用)
1. 第一步:遍历数组,找到内部的最大值;
2. 第二步:遍历数组,测度扫数元素的总数;
3. 第三步:用「最大值 × 数组元素个数」,得到打算总数;
4. 第四步:用「打算总数 - 原数组总数」,最终端正即是最少操作次数。
四、复杂度分析
1. 本事复杂度
• 代码中需要遍历数组两次:一次找最大值,一次乞降;
• 遍历次数和数组长度n成正比;
• 最终本事复杂度:O(n)(线性本事复杂度)。
2. 空间复杂度
• 代码只使用了固定的几个变量(最大值、总数、端正),莫得创建寥落的数组/聚首等占用空间的数据结构;
• 寥落占用的空间不随数组长度变化,是固定常量;
• 最终空间复杂度:O(1)(常量空间复杂度)。
回来
1. 解题中枢:把所少见加到数组最大值,用打算总数减原总数得到操作次数;
2. 示例 [2,1,3] 最终操作次数为3;
3. 本事复杂度O(n),空间复杂度O(1)。
Go完好代码如下:
package main
import (
"fmt"
"slices"
)
func minMoves(nums []int)int {
ans := slices.Max(nums) * len(nums)
for _, x := range nums {
ans -= x
}
return ans
}
func main {
nums := []int{2, 1, 3}
result := minMoves(nums)
fmt.Println(result)
}

Python完好代码如下:
# -*-coding:utf-8-*-
from typing import List
def minMoves(nums: List[int]) -> int:
ans = max(nums) * len(nums)
for x in nums:
ans -= x
return ans
def main:
nums = [2, 1, 3]
result = minMoves(nums)
print(result)
if __name__ == "__main__":
main

C++完好代码如下:
#include
#include
#include
int minMoves(std::vector& nums) {
int maxVal = *std::max_element(nums.begin, nums.end);
int ans = maxVal * nums.size;
for (int x : nums) {
ans -= x;
}
return ans;
}
int main {
std::vector nums = {2, 1, 3};
int result = minMoves(nums);
std::cout
return0;
}

咱们服气东说念主工智能为粗俗东说念主提供了一种“增强器具”,并竭力于于共享全标的的AI学问。在这里,您不错找到最新的AI科普著述、器具评测、普及端正的隐秘以及行业知悉。
宽饶存眷“福大大架构师逐日一题”,发音尘可赢得口试良友bbin,让AI助力您的改日发展。
HG真人游戏官方网站http://www.ctnqp.com/boyinpankou/158109.html