小欧有一个长度为 n 的数组,现在他想挑出 3 个数,使得这 3 个数的和为奇数,如果可以挑出则输出 "YES",否则输出 "NO"。
一行一个整数 n ,表示数组的长度。 一行 n 个整数 a_1, a_2, ..., a_n ,表示数组的元素。 3 ≤ n ≤ 10^5 1 ≤ a_i ≤ 1000
如果可以挑出 3 个数,使得这 3 个数的和为奇数,则输出 "YES",否则输出 "NO"。
4 1 2 3 4
YES
4 2 4 6 8
NO
考点:基础数学
数据规模 n ≤ 1e5 | 限制 1 秒 / 256MB | 标准输入输出
推荐方向:基础数学
本题切入点
三个数和为奇数需「奇数个数为奇数」:统计数组中奇数的个数,判断能否取出 1 个或 3 个奇数。
把题目转化为数学表达式,用公式或性质直接求值。
思路框架(基础数学 通法 · 非本题专属)
实现要点:浮点输出通常要求相对误差不超过 1e-7,注意用 double/long double 或高精度小数。
复杂度:时间 O(1) ~ O(log n) | 空间 O(1)
该范式的通法易错点
对照本题
样例 1:输入 4 / 1 2 3 4 → 输出 YES
选取 a_1, a_2, a_4 即可。
样例 2:输入 4 / 2 4 6 8 → 输出 NO
无法选取 3 个数使得和为奇数。
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2024年秋招-OPPO-前端岗笔试。