
2025-04-28:替换为数位和以后的最小元素。用go语言,给定一个整数数组 nums,你需要将数组中每个元素替换成该元素各位数字之和。
完成替换后,请返回数组中的最小值。
1 <= nums.length <= 100。
1 <= nums[i] <= 10000。
输入:nums = [999,19,199]。
输出:10。
解释:
nums 替换后变为 [27, 10, 19] ,最小元素为 10 。
题目来自leetcode3300。
nums,数组长度为 1 到 100 之间,数组中每个元素的范围是 1 到 10000。minV 用来记录当前计算出的数位和中的最小值。minV 初始化为一个很大的整数值(比如系统支持的最大整数),确保后面比较时可以更新。num。num,计算其各个位数的数字和。例如,对于 999:9 累加,9 累加,9 累加,num % 10) 获取个位数,再通过整除 10 (num / 10) 去除最低位,直到数字被处理完。minV 进行比较。minV。minV。总体时间复杂度为 O(n)。
cur、minV)等。package main
import (
"fmt"
"math"
)
func minElement(nums []int)int {
minV := math.MaxInt64
for _, num := range nums {
cur := 0
// 计算当前数字的各个位数之和
for n := num; n > 0; n /= 10 {
cur += n % 10
}
if cur < minV {
minV = cur
}
}
return minV
}
func main() {
nums := []int{999, 19, 199}
result := minElement(nums)
fmt.Println(result)
}

# -*-coding:utf-8-*-
defmin_element(nums):
min_v = float('inf')
for num in nums:
cur = 0
n = num
while n > 0:
cur += n % 10
n //= 10
if cur < min_v:
min_v = cur
return min_v
if __name__ == "__main__":
nums = [999, 19, 199]
result = min_element(nums)
print(result)