解题思路
题目要求判断数组中有多少个数是“完美偶数”,即满足以下两个条件:
- 是偶数 (x%2==0x % 2 == 0x%2==0)。
- 位于区间 [l,r][l, r][l,r] 中。
我们可以遍历数组 aaa,对每个元素检查上述两个条件,如果满足,则计数器加1。
实现代码(Python)
python
复制代码
def count_perfect_evens(n, l, r, a):
count = 0
for x in a:
if x % 2 == 0 and l <= x <= r:
count += 1
return count
# 测试样例
print(count_perfect_evens(5, 3, 8, [1, 2, 6, 8, 7])) # 输出 2
print(count_perfect_evens(4, 10, 20, [12, 15, 18, 9])) # 输出 2
print(count_perfect_evens(3, 1, 10, [2, 4, 6])) # 输出 3
解释
-
输入处理:
- nnn 是数组的长度。
- [l,r][l, r][l,r] 是判断“完美偶数”的区间。
- aaa 是输入数组。
-
逻辑:
-
遍历数组 aaa,对每个元素 xxx 判断是否满足以下条件:
- x%2==0x % 2 == 0x%2==0:判断是否是偶数。
- l≤x≤rl \leq x \leq rl≤x≤r:判断是否在区间内。
-
如果满足两个条件,将计数器 countcountcount 加1。
-
-
输出:
- 返回最终计数值 countcountcount。
时间复杂度和空间复杂度
- 时间复杂度: O(n)O(n)O(n),因为需要遍历整个数组一次。
- 空间复杂度: O(1)O(1)O(1),只使用了常量额外空间。
解题思路
题目要求判断数组中有多少个数是“完美偶数”,即满足以下两个条件:
- 是偶数 (x%2==0x % 2 == 0x%2==0)。
- 位于区间 [l,r][l, r][l,r] 中。
我们可以遍历数组 aaa,对每个元素检查上述两个条件,如果满足,则计数器加1。
实现代码(Python)
python
复制代码
def count_perfect_evens(n, l, r, a):
count = 0
for x in a:
if x % 2 == 0 and l <= x <= r:
count += 1
return count
# 测试样例
print(count_perfect_evens(5, 3, 8, [1, 2, 6, 8, 7])) # 输出 2
print(count_perfect_evens(4, 10, 20, [12, 15, 18, 9])) # 输出 2
print(count_perfect_evens(3, 1, 10, [2, 4, 6])) # 输出 3
解释
-
输入处理:
- nnn 是数组的长度。
- [l,r][l, r][l,r] 是判断“完美偶数”的区间。
- aaa 是输入数组。
-
逻辑:
-
遍历数组 aaa,对每个元素 xxx 判断是否满足以下条件:
- x%2==0x % 2 == 0x%2==0:判断是否是偶数。
- l≤x≤rl \leq x \leq rl≤x≤r:判断是否在区间内。
-
如果满足两个条件,将计数器 countcountcount 加1。
-
-
输出:
- 返回最终计数值 countcountcount。
时间复杂度和空间复杂度
- 时间复杂度: O(n)O(n)O(n),因为需要遍历整个数组一次。
- 空间复杂度: O(1)O(1)O(1),只使用了常量额外空间。