做题体验| 豆包MarsCode AI刷题

84 阅读3分钟

这篇文章带你们一起刷刷题,感受一下稀土掘金的AI刷题的体验。有时候遇到不会的题的时候,苦于网上也没有相应的题目解析,这时候AI的强大之处就体现出来啦(但是AI终究是AI,题目还是建议要自己思考哦)

简单题47题:完美偶数计数

问题描述

小C定义了一个“完美偶数”。一个正整数 xx 被认为是完美偶数需要满足以下两个条件:

  1. xx 是偶数;
  2. xx 的值在区间 [l,r][l,r] 之间。

现在,小C有一个长度为 nn 的数组 aa,她想知道在这个数组中有多少个完美偶数。


测试样例

样例1:

输入:n = 5,l = 3,r = 8,a = [1, 2, 6, 8, 7]
输出:2

样例2:

输入:n = 4,l = 10,r = 20,a = [12, 15, 18, 9]
输出:2

样例3:

输入:n = 3,l = 1,r = 10,a = [2, 4, 6]
输出:3

开始解题

看下图,可以见到在代码的编辑区,系统已经给了我们基础的框架代码

// write code here

就是告诉你可以把你的解题步骤写在这里(注意:检测判断题目是否通过的时候,需要有solution,其他的没有要求

image.png

经过一番思考之后,如果我们不太理解题目的意思,就可以使用我们万能的AI,点击需要代码提示,它和直接使用ChatGPT不同的优点就是,它不会直接告诉你这道题该怎么做,它只会告诉你一些写这道题的思路。相当于提示的感觉,而不是直接帮你做了,这样避免你在做题中没有思考(ps:我觉得这种提示挺好的,每次写题的时候心里没底,就问AI,AI把代码直接告诉你了,就会忍不住看)

image.png

在我们写完了题目,然后判断题目不通过的时候,就可以用它的代码检查功能

image.png

这个功能非常方便,它会直接读取到你的编辑区,不需要你自己去复制给它,简直不要太舒服

image.png

在这下面贴上这道题的正确代码,并且贴上AI给我们解释这道题该怎么做的,让我们看看AI写题多么方便吧~

public class Main {
  public static int solution(int n, int l, int r, int[] a) {
    // write code here
    int ans = 0;
    for (int i = 0; i < n; i++) {
      if (a[i] >= l && a[i] <= r && a[i] % 2 == 0) {
        ans++;
      }
    }
    return ans;
  }

  public static void main(String[] args) {
    System.out.println(solution(5, 3, 8, new int[] { 1, 2, 6, 8, 7 }) == 2);
    System.out.println(solution(4, 10, 20, new int[] { 12, 15, 18, 9 }) == 2);
    System.out.println(solution(3, 1, 10, new int[] { 2, 4, 6 }) == 3);
  }
}

AI解释每行的作用:

  1. 方法 solution:

    • 参数n 是数组的长度,l 和 r 是区间的边界,a 是数组。

    • 逻辑:

      • 初始化 ans 为 0。

      • 遍历数组 a,检查每个元素是否满足以下条件:

        • 元素在区间 [l, r] 之间。
        • 元素是偶数。
      • 如果满足条件,ans 加一。

      • 最后返回 ans

  2. 方法 main:

    • 测试用例: 提供了三个测试用例,分别对应题目中的样例。
    • 输出: 打印每个测试用例的结果是否与预期结果相等。