三数之和:ACM 模式刷题
按标准输入读取测试数据,输出结果后可在 CodeACM 在线运行和提交。
题目描述
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请你返回所有和为 0 且不重复的三元组。
注意:答案中不可以包含重复的三元组。
输入格式
第一行包含一个整数 n,表示数组长度。
第二行包含 n 个整数 nums[i],相邻数字以空格分隔。
输出格式
输出所有和为 0 且不重复的三元组,每行输出一个三元组的三个整数,数字之间以空格分隔。
若不存在满足条件的三元组,则输出为空。
输出的顺序和三元组内部的顺序不作要求。
数据范围
- 3 ≤ n ≤ 3000
- −10⁵ ≤ nums[i] ≤ 10⁵
公开样例
样例 1
输入
6 -1 0 1 2 -1 -4
输出
-1 -1 2 -1 0 1
不同的三元组是 [-1, -1, 2] 和 [-1, 0, 1],输出顺序不作要求。
样例 2
输入
3 0 1 1
输出
不存在和为 0 的三元组,因此输出为空。
练习建议
先根据输入输出格式写出可运行程序,再用公开样例检查结果;遇到边界情况时,补充自测用例后提交。