LeetCode 每日一题笔记 日期:2026.05.29 题目:3300. 最小元素

LeetCode 每日一题笔记

0. 前言

  • 日期:2026.05.29
  • 题目:3300. 最小元素
  • 难度:简单
  • 标签:数组、数学

1. 题目理解

问题描述 :

给定一个整数数组 nums,将数组中每个元素替换为它的各位数字之和 ,返回替换后的数组中的最小值。

示例:

输入:nums = 10,12,13

输出:1

解释:各位和分别为 1、3、4,最小值是 1。

2. 解题思路

核心观察

  • 求数字的各位和有两种方式:字符串遍历、数学取模运算。
  • 数学法效率更高,无需字符串转换,减少开销。

算法步骤

  1. 遍历数组所有元素。
  2. 对每个数字,循环取余累加得到各位和。
  3. 记录最小的各位和。

3. 代码实现

java 复制代码
package lc3300;

public class Solution {
    public int minElement(int[] nums) {
        int res = Integer.MAX_VALUE;
        for (int i = 0; i < nums.length; i++) {
            String s = String.valueOf(nums[i]);
            int curRes = 0;
            for (int j = 0; j < s.length(); j++) {
                int num = s.charAt(j) - '0';
                curRes += num;
            }

            res = Math.min(res, curRes);
        }
        return res;
    }
}

4. 代码优化说明

(代码未做任何修改,仅添加注释讲解)

java 复制代码
class Solution {
public int minElement(int[] nums) {
    // 获取数组长度
    int len = nums.length;
    // 初始化最小值为整型最大值
    int min = Integer.MAX_VALUE;

    // 遍历数组中的每一个数字
    for (int i = 0; i < len; i++) {
        int num = nums[i];
        // 存储当前数字的各位之和
        int temp = 0;

        // 循环计算各位和:取最后一位累加,然后移除最后一位
        while (num > 0) {
            temp += num % 10;
            num /= 10;
        }

        // 更新最小值
        min = Math.min(min, temp);
    }

    return min;
}
}

5. 复杂度分析

  • 时间复杂度 :O(n×d)O(n \times d)O(n×d)
    n 为数组长度,d 为数字最大位数,整体接近线性复杂度。
  • 空间复杂度 :O(1)O(1)O(1)
    仅使用常数级变量,无额外空间。

6. 总结

  • 核心:数学取模求各位和,比字符串方式更高效。
  • 优化点:去掉字符串转换操作,纯数值运算提升性能。
  • 关键技巧:num % 10 取最后一位,num /= 10 去掉最后一位。
相关推荐
andyweike7 小时前
php笔记
开发语言·笔记·php
xian_wwq8 小时前
【学习笔记】等保合规安全基线核查实战
笔记·学习
M78佐菲10 小时前
ARM学习笔记(11)
linux·arm开发·笔记·嵌入式硬件·学习
M78佐菲10 小时前
ARM学习笔记(10)
linux·arm开发·笔记·嵌入式硬件·学习
李游Leo10 小时前
HarmonyOS 7 + ArkUI + RelationalStore 学习笔记:本地数据分层存储与状态持久化架构实践【鸿蒙心迹】
笔记·学习·架构·harmonyos
Cccp.12310 小时前
【leetcode】(七)前缀树和贪心算法
数据结构·leetcode·贪心算法
我命由我1234510 小时前
经纪人的职业定义
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
摇滚侠11 小时前
《On Java 中文版 基础卷》阅读笔记 对象无处不在 03
java·笔记·python
知产xiao_xin12 小时前
地理标志权
经验分享·笔记·知识产权
摆烂z14 小时前
多模态大模型微调笔记
笔记