本题是经典「三数之和」的变体,额外增加了奇偶性约束:三元组中至少有两个元素为奇数。
算法核:排序 + 枚举 + 双指针
nums[i](i 从 0 到 n-3),若与前一元素相同则跳过以去重。i,使用双指针 j = i+1、k = n-1 在剩余部分中搜索:给定一个包含 n 个整数的数组 nums 和一个整数 target,请从数组中找出所有 不重复 的三元组 [nums[i], nums[j], nums[k]],满足以下两个条件:
和为目标:
nums[i]+nums[j]+nums[k]=target
奇偶性约束:
三个元素中 至少有两个 是奇数。
返回所有满足条件的不重复三元组。
提示:
补充说明
返回值输出格式:每个子数组内部的元素按数值升序排列,所有子数组之间按字典序升序排列(即先比较第一个元素,若相同再比较第二个,以此类推)。
示例:[[-1,-1,2],[-1,0,1]]
输入为一个数组 nums 和一个目标整数 target。
输出所有满足条件的不重复三元组。
输入
[-1,0,1,2,-1,-4],0
输出
[[-1,-1,2],[-1,0,1]]
说明
无
输入
[1,2,3,4,5],9
输出
[[1,3,5]]
说明
[1,3,5] = 9,三个都是奇数,通过。[2,3,4] = 9,3 是奇数,但 2 和 4 都是偶数,只有一个奇数,不通过。输入
[0,0,0],0
输出
[]
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册