题目要求我们找出数组 a 中满足以下两个条件的元素数量:
- 元素是偶数。
- 元素在区间
[l, r]之间。
我们可以通过遍历数组 a,对每个元素进行检查,判断其是否为偶数,并且是否在给定的区间内。如果满足条件,则计数器加一。
图解
假设我们有以下输入:
n = 5l = 3r = 8a = [1, 2, 6, 8, 7]
我们可以通过以下步骤进行检查:
-
遍历数组
a:- 元素
1:不是偶数,跳过。 - 元素
2:是偶数,但在区间[3, 8]之外,跳过。 - 元素
6:是偶数,且在区间[3, 8]之内,计数器加一。 - 元素
8:是偶数,且在区间[3, 8]之内,计数器加一。 - 元素
7:不是偶数,跳过。
- 元素
最终计数器的结果为 2,即数组中有两个完美偶数。
代码详解
public class Main { public static int solution(int n, int l, int r, int[] a) { int count = 0; // 初始化计数器
// 遍历数组 a
for (int i = 0; i < n; i++) {
int num = a[i];
// 检查是否为偶数
if (num % 2 == 0) {
// 检查是否在区间 [l, r] 之间
if (num >= l && num <= r) {
count++; // 满足条件,计数器加一
}
}
}
return count; // 返回完美偶数的数量
}
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刷题:利用豆包MarsCode AI的刷题功能,快速获取解题思路和代码框架。
- 多资源结合:结合其他学习资源,如书籍、在线课程等,全面提升编程能力。
- 实践应用:将学到的知识应用到实际项目中,加深理解和记忆。