7.1华为OD机试真题 新系统 - 奇偶三数之和 (Java/Py/C/C++/Js/Go)

奇偶三数之和

2026 华为OD机试真题 7月1日华为OD上机新系统考试真题 100 分题型

点击查看华为 OD 机试真题完整目录:2026最新华为OD机试新系统卷 + 双机位C卷 真题题库目录|全覆盖题库 + 逐点算法考点详解

题目描述

给定一个包含 n 个整数的数组 nums 和一个整数 target,请从数组中找出所有 不重复 的三元组 [nums[i], nums[j], nums[k]],满足以下两个条件:

  1. 和为目标
    nums[i]+nums[j]+nums[k]=target

  2. 奇偶性约束
    三个元素中 至少有两个 是奇数。

返回所有满足条件的不重复三元组。

提示:

  • 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] = 93 是奇数,但 24 都是偶数,只有一个奇数,不通过

示例2

输入

0,0,0
0

输出

[]

说明

示例3

输入

1,1,2,3,5,7
8

输出

[[1,2,5]]

说明

1+2+5=8,且至少两个奇数(1,5都是奇数)

解题思路

核心思想

排序 + 双指针 + 奇偶性过滤:

  1. 先对数组排序,便于去重和双指针操作
  2. 固定第一个数,使用双指针找另外两个数
  3. 判断三元组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

算法大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值