完美偶数计数 | 豆包MarsCode AI刷题

58 阅读2分钟

解题思路

题目要求判断数组中有多少个数是“完美偶数”,即满足以下两个条件:

  1. 是偶数 (x%2==0x % 2 == 0x%2==0)。
  2. 位于区间 [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

解释

  1. 输入处理:

    • nnn 是数组的长度。
    • [l,r][l, r][l,r] 是判断“完美偶数”的区间。
    • aaa 是输入数组。
  2. 逻辑:

    • 遍历数组 aaa,对每个元素 xxx 判断是否满足以下条件:

      • x%2==0x % 2 == 0x%2==0:判断是否是偶数。
      • l≤x≤rl \leq x \leq rl≤x≤r:判断是否在区间内。
    • 如果满足两个条件,将计数器 countcountcount 加1。

  3. 输出:

    • 返回最终计数值 countcountcount。

时间复杂度和空间复杂度

  • 时间复杂度: O(n)O(n)O(n),因为需要遍历整个数组一次。
  • 空间复杂度: O(1)O(1)O(1),只使用了常量额外空间。

解题思路

题目要求判断数组中有多少个数是“完美偶数”,即满足以下两个条件:

  1. 是偶数 (x%2==0x % 2 == 0x%2==0)。
  2. 位于区间 [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

解释

  1. 输入处理:

    • nnn 是数组的长度。
    • [l,r][l, r][l,r] 是判断“完美偶数”的区间。
    • aaa 是输入数组。
  2. 逻辑:

    • 遍历数组 aaa,对每个元素 xxx 判断是否满足以下条件:

      • x%2==0x % 2 == 0x%2==0:判断是否是偶数。
      • l≤x≤rl \leq x \leq rl≤x≤r:判断是否在区间内。
    • 如果满足两个条件,将计数器 countcountcount 加1。

  3. 输出:

    • 返回最终计数值 countcountcount。

时间复杂度和空间复杂度

  • 时间复杂度: O(n)O(n)O(n),因为需要遍历整个数组一次。
  • 空间复杂度: O(1)O(1)O(1),只使用了常量额外空间。