三数之和
2017-03-21 21:48
32 查看
//从键盘输入一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组
//O(N^2)
//O(N^2)
#include<iostream> #include<algorithm> using namespace std; class sum { int size; int *arr; public: sum(int s,int *a) { size=s; arr=a; } void f() { sort(arr,arr+size); int i,j,k; for(i=0;i<=size-3&&arr[i]<=0;i++) { j=i+1; k=size-1; while(j<k) { if(arr[j]+arr[k]>(-arr[i])) { k--; } else if(arr[j]+arr[k]<(-arr[i])) { j++; } else { cout<<"("<<*(arr+i)<<" "<<*(arr+j)<<" "<<*(arr+k)<<")"<<endl; break; } } } } }; int main() { int size; int a[100]; cin>>size; for(int i=0;i<size;i++) { cin>>a[i]; } sum my(size,a); my.f(); return 0;
相关文章推荐
- 最接近的三数之和
- [LeetCode] 259. 3Sum Smaller 三数之和较小值
- Java 之 三数排序
- [itint5]三数和为0
- 第17周项目2--引用作行参(三数排序(引用类型作参数))
- 算法练习:两指针之三数之和为0
- 三数之和
- LeetCodet题解--16. 3Sum Closest(离给定值最近的三数之和)
- 记录输入三数排序,字符串操作
- 算法Day2-三数之和
- LeetCode | 15. 3Sum(三数和为定值)
- [Lintcode]三数之和
- c语言 比较三数大小
- 三数之和
- 梦断代码——三数取大
- 快速排序-常见中轴(主元pivot)选择方法及实现代码(末位/随机/三数中值/..)
- 第十七周项目2——引用做形参(三数排序(引用法))
- leetCode 16.3Sum Closest (离给定值最近的三数之和) 解题思路和方法
- lintcode 中等题: 3 Sum 三数之和
- LintCode-三数之和 II