青训营X豆包MarsCode 技术训练营第二课 | 豆包MarsCode AI 刷题

82 阅读3分钟

学习日记:完美偶数的计算

题目解析:完美偶数的数量

今天我解决了一道关于数组中“完美偶数”个数的题目。题目要求我们在给定的数组中统计满足以下条件的“完美偶数”的个数:

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

通过这道题,我加深了对条件判断和数组遍历的理解,同时也学到了如何高效地解决这种筛选类问题。

题目思路:

  1. 偶数判断:要判断一个数是否为偶数,只需要通过取模操作 num % 2 == 0 来判断。
  2. 区间判断:对于每个数组元素,需要判断它是否在区间 [l, r] 内,可以通过 l <= num <= r 进行判断。
  3. 计数:满足上述两个条件的数字,即为“完美偶数”,我们只需对它们进行计数并返回结果。

代码实现: def solution(n: int, l: int, r: int, a: list) -> int: # 初始化计数器 count = 0

# 遍历数组 a
for num in a:
    # 判断当前数是否为偶数且在区间 [l, r] 内
    if num % 2 == 0 and l <= num <= r:
        count += 1

# 返回符合条件的完美偶数的个数
return count

if name == 'main': # 测试用例 print(solution(5, 3, 8, [1, 2, 6, 8, 7]) == 2) # 结果应该是 2 print(solution(4, 10, 20, [12, 15, 18, 9]) == 2) # 结果应该是 2 print(solution(3, 1, 10, [2, 4, 6]) == 3) # 结果应该是 3

思路分析: 偶数判断:通过 num % 2 == 0 判断数字是否为偶数,利用取模操作是判断偶数最常见且高效的方法。 区间范围判断:通过 l <= num <= r 判断数字是否在给定的区间内,这种条件判断简单直观。 时间复杂度:遍历数组的时间复杂度是 O(n),因此该算法是线性时间复杂度,效率较高。

学习总结与心得

通过这道题,我总结出以下几点:

  1. 条件判断的重要性:解决类似问题时,我们需要对每个元素做出多重条件判断。在实际编程中,能够高效地组合这些条件,能够让我们的代码简洁且高效。
  2. 数组遍历的技巧:对于数组中的每个元素进行遍历并判断条件是一种非常常见的编程模式。在面对类似问题时,我们可以直接利用循环结构遍历数组并进行条件筛选。
  3. 简洁的实现:这道题的实现相对简洁,没有复杂的算法或数据结构,关键在于如何进行有效的条件判断。

总结: 通过这道题,我再次感受到了基础编程技能在解决问题中的重要性。通过不断练习条件判断、数组遍历等基础操作,我能够更高效地解决实际问题,并逐步提高自己的编程水平。