
LeetCode 每日一题笔记0. 前言日期2026.05.29题目3300. 最小元素难度简单标签数组、数学1. 题目理解问题描述给定一个整数数组nums将数组中每个元素替换为它的各位数字之和返回替换后的数组中的最小值。示例输入nums [10,12,13]输出1解释各位和分别为 1、3、4最小值是 1。2. 解题思路核心观察求数字的各位和有两种方式字符串遍历、数学取模运算。数学法效率更高无需字符串转换减少开销。算法步骤遍历数组所有元素。对每个数字循环取余累加得到各位和。记录最小的各位和。3. 代码实现packagelc3300;publicclassSolution{publicintminElement(int[]nums){intresInteger.MAX_VALUE;for(inti0;inums.length;i){StringsString.valueOf(nums[i]);intcurRes0;for(intj0;js.length();j){intnums.charAt(j)-0;curResnum;}resMath.min(res,curRes);}returnres;}}4. 代码优化说明代码未做任何修改仅添加注释讲解classSolution{publicintminElement(int[]nums){// 获取数组长度intlennums.length;// 初始化最小值为整型最大值intminInteger.MAX_VALUE;// 遍历数组中的每一个数字for(inti0;ilen;i){intnumnums[i];// 存储当前数字的各位之和inttemp0;// 循环计算各位和取最后一位累加然后移除最后一位while(num0){tempnum%10;num/10;}// 更新最小值minMath.min(min,temp);}returnmin;}}5. 复杂度分析时间复杂度O(n×d)O(n \times d)O(n×d)n 为数组长度d 为数字最大位数整体接近线性复杂度。空间复杂度O(1)O(1)O(1)仅使用常数级变量无额外空间。6. 总结核心数学取模求各位和比字符串方式更高效。优化点去掉字符串转换操作纯数值运算提升性能。关键技巧num % 10取最后一位num / 10去掉最后一位。