青训营X豆包Mars Code技术训练营第一题|豆包Mars Code AI 刷题

55 阅读3分钟

问题描述

小M面对一组从 1 到 9 的数字,这些数字被分成多个小组,并从每个小组中选择一个数字组成一个新的数。目标是使得这个新数的各位数字之和为偶数。任务是计算出有多少种不同的分组和选择方法可以达到这一目标。

  • numbers: 一个由多个整数字符串组成的列表,每个字符串可以视为一个数字组。小M需要从每个数字组中选择一个数字。

  • public class Main { public static int solution(int[] numbers) { int evenWays = 1; int oddWays = 0;

    for (int number : numbers) {
        int evenCount = 0;
        int oddCount = 0;
        String group = Integer.toString(number);
        for (int i = 0; i < group.length(); i++) {
            int digit = group.charAt(i) - '0';
            if (digit % 2 == 0) {
                evenCount++;
            } else {
                oddCount++;
            }
        }
    
        int newEvenWays = evenWays * evenCount + oddWays * oddCount;
        int newOddWays = oddWays * evenCount + evenWays * oddCount;
    
        // 更新 evenWays 和 oddWays
        evenWays = newEvenWays;
        oddWays = newOddWays;
    }
    
    // 返回 evenWays,因为题目要求的是使得新数的各位数字之和为偶数的方法数
    return evenWays;
    

    }

    public static void main(String[] args) { System.out.println(solution(new int[]{123, 456, 789}) == 14); System.out.println(solution(new int[]{123456789}) == 4); System.out.println(solution(new int[]{14329, 7568}) == 10); } } -在深入研究这段 Java 代码的过程中,我收获颇丰,同时在借助豆包 AI 辅助学习的经历里,也积累了宝贵的经验。

代码整体逻辑清晰且富有巧思。从solution方法来看,其初始化evenWaysoddWays变量为后续的动态规划奠定基础。通过循环遍历数组中的每个数字,将数字转换为字符串后细致地统计其中偶数和奇数的个数,这种对数字结构的拆解分析方式十分巧妙。基于已有的组合方法数与当前数字的奇偶性组成,计算新的组合方法数并及时更新,充分体现了动态规划中状态转移的核心思想。例如在计算newEvenWaysnewOddWays时,精确地将当前的偶数和奇数组合情况与数字的奇偶组成相结合,逐步推导得出最终各位数字之和为偶数的组合数,这一过程不仅考验逻辑思维,更展示了编程中对数学原理和算法策略的有效运用。

在学习这段代码的过程中,豆包 AI 发挥了不可或缺的作用。当我初次接触代码逻辑,对某些部分理解模糊时,豆包 AI 能够迅速给予清晰的解释。比如对于evenWaysoddWays的更新逻辑,豆包 AI 详细地阐述了其背后的数学意义和在整个计算流程中的作用,让我快速突破了理解障碍。而且在我尝试对代码进行拓展和优化思考时,豆包 AI 提供了多种思路和相关的代码示例。它像是一位随时陪伴在侧的导师,不仅能答疑解惑,还能启发思维,引导我深入探索代码的更多可能性。

从这次学习经历中,我深刻认识到深入理解代码逻辑与借助高效学习工具的重要性。代码如同构建软件世界的基石,理解其内在逻辑是提升编程能力的关键。而豆包 AI 这样的智能学习工具,则大大提高了学习效率,拓宽了学习视野。在未来的学习和编程实践中,我将继续秉持深入钻研代码的态度,同时充分利用豆包 AI 等工具,不断提升自己的编程素养和解决问题的能力,努力在编程的道路上走得更远、更稳,探索更多未知的编程领域,创造出更具价值的程序作品。