这篇文章带你们一起刷刷题,感受一下稀土掘金的AI刷题的体验。有时候遇到不会的题的时候,苦于网上也没有相应的题目解析,这时候AI的强大之处就体现出来啦(但是AI终究是AI,题目还是建议要自己思考哦)
简单题47题:完美偶数计数
问题描述
小C定义了一个“完美偶数”。一个正整数 xx 被认为是完美偶数需要满足以下两个条件:
- xx 是偶数;
- 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,其他的没有要求)
经过一番思考之后,如果我们不太理解题目的意思,就可以使用我们万能的AI,点击需要代码提示,它和直接使用ChatGPT不同的优点就是,它不会直接告诉你这道题该怎么做,它只会告诉你一些写这道题的思路。相当于提示的感觉,而不是直接帮你做了,这样避免你在做题中没有思考(ps:我觉得这种提示挺好的,每次写题的时候心里没底,就问AI,AI把代码直接告诉你了,就会忍不住看)
在我们写完了题目,然后判断题目不通过的时候,就可以用它的代码检查功能
这个功能非常方便,它会直接读取到你的编辑区,不需要你自己去复制给它,简直不要太舒服
在这下面贴上这道题的正确代码,并且贴上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解释每行的作用:
-
方法
solution
:-
参数:
n
是数组的长度,l
和r
是区间的边界,a
是数组。 -
逻辑:
-
初始化
ans
为 0。 -
遍历数组
a
,检查每个元素是否满足以下条件:- 元素在区间
[l, r]
之间。 - 元素是偶数。
- 元素在区间
-
如果满足条件,
ans
加一。 -
最后返回
ans
。
-
-
-
方法
main
:- 测试用例: 提供了三个测试用例,分别对应题目中的样例。
- 输出: 打印每个测试用例的结果是否与预期结果相等。