奇偶三数之和
2026 华为OD机试真题 7月1日华为OD上机新系统考试真题 100 分题型
点击查看华为 OD 机试真题完整目录:2026最新华为OD机试新系统卷 + 双机位C卷 真题题库目录|全覆盖题库 + 逐点算法考点详解
题目描述
给定一个包含 n 个整数的数组 nums 和一个整数 target,请从数组中找出所有 不重复 的三元组 [nums[i], nums[j], nums[k]],满足以下两个条件:
-
和为目标:
nums[i]+nums[j]+nums[k]=target -
奇偶性约束:
三个元素中 至少有两个 是奇数。
返回所有满足条件的不重复三元组。
提示:
- 3≤nums.length≤3000
- −105≤nums[i]≤105
补充说明
返回值输出格式:每个子数组内部的元素按数值升序排列,所有子数组之间按字典序升序排列(即先比较第一个元素,若相同再比较第二个,以此类推)。示例:[[-1,-1,2],[-1,0,1]]
输入描述
输入为一个数组 nums 和一个目标整数 target。
格式:第一行是数组元素(逗号分隔),第二行是目标整数。
输出描述
输出所有满足条件的不重复三元组。
示例1
输入
-1,0,1,2,-1,-4
0
输出
[[-1,-1,2],[-1,0,1]]
说明
[1,3,5] = 9,三个都是奇数,通过。[2,3,4] = 9,3是奇数,但2和4都是偶数,只有一个奇数,不通过。
示例2
输入
0,0,0
0
输出
[]
说明
示例3
输入
1,1,2,3,5,7
8
输出
[[1,2,5]]
说明
1+2+5=8,且至少两个奇数(1,5都是奇数)
解题思路
核心思想
排序 + 双指针 + 奇偶性过滤:
- 先对数组排序,便于去重和双指针操作
- 固定第一个数,使用双指针找另外两个数
- 判断三元组
订阅专栏 解锁全文

45万+

被折叠的 条评论
为什么被折叠?



