Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = target? Find all unique quadruplets in the array which gives the sum of target.
Note:
- Elements in a quadruplet (a,b,c,d) must be in non-descending order. (ie, a ≤ b ≤ c ≤ d)
- The solution set must not contain duplicate quadruplets.
For example, given array S = {1 0 -1 0 -2 2}, and target = 0. A solution set is: (-1, 0, 0, 1) (-2, -1, 1, 2) (-2, 0, 0, 2)
class Solution { public: vector<vector<int> > fourSum(vector<int> &num, int target) { vector<vector<int> > ret; sort(num.begin(), num.end()); for(int i = 0; i < num.size(); ++i) { if(i > 0 && num[i] == num[i-1]) continue; for(int j = i + 1; j < num.size(); ++j) { if(j > i+1 && num[j] == num[j-1]) continue; int k = j + 1, l = num.size() - 1; int tsum = target - num[i] - num[j]; while(k < l) { int t = num[k] + num[l]; if (t > tsum) {--l;} else if (t < tsum) {++k;} else { vector<int> vec({num[i], num[j], num[k], num[l]}); ret.push_back(vec); while(num[++k] == num[k-1]); while(num[--l] == num[l+1]); } } } } return ret; } };
欢迎关注微信公众号——计算机视觉
相关推荐
完整的md5算法实现,readme.txt中有详细的使用说明,移植进项目非常简单。
本文给大家介绍的是C++实现two sum问题的暴力算法,蛮力解法意味着我们需要检查每一个数字与后面是否可以组成target,在数字量不大的情况下还是可以得到很好的效果,所以蛮力法的字符串匹配仍然是得到了实际生活中的...
cout<<"c++的平均成绩是:"<<sum[2]/size; cout(ios::fixed)(0); } else cout当前无学生数据,请添加......"; } void leo::lpcent() //成绩分类 { int p[3][200]; float tem=100.0/size; string a[3]={"英语",...
MaxSumTest.cpp: Various maximum subsequence sum algorithms Fig02_09.cpp: Test program for binary search Fig02_10.cpp: Euclid's algorithm, with a test program Fig02_11.cpp: Recursive exponentiation ...
若排成一行,最小分值:(4+4)+(8+5)+(9+13)=43,最大分值:(9+4)+(13+4)+(17+5)=52。 若排成圈状,最小分值:(4+4)+(8+5)+(9+13)=43,最大分值:(9+5)+(14+4)+(18+4)=54。 此题以第一模型的最低得分为例,很多同学...
Max-Sum算法在C ++中的实现 该库的API文档可在在线。 依存关系 该项目当前具有两个第三方库依赖项: 本征3: ; 和 Boost 1.48或更高版本: 。 doxygen是编译html中的文档所必需的。 另外,需要LaTeX生成html中...
C和C++的区别: C语言可以在C++编译器上完美运行,即C属于C++ C++比C多出来一些函数库 C++是面向对象编程(即有class以及相关...第13行:printf("%lld %lld\n",m,sum); 这三点也是C和C++最基本的区别,下面看C++版本:
对照书上实现了LBG适量量化的算法,共享一下。 LBG是经典的矢量量化算法,通过对训练集的分析,生成矢量量化使用的码本。 实现过程简单明了,就一个CPP文件。 typedef struct _tTSVector { //training set vector...
#include #include using namespace std; class ds { public: void equal(string x,string y,int n1,int n2); void nequal(string x,string y,int n1... int sum =0; int k = 0; int add[1000]; for(i=0;i;i++)
基于C++实现的单目多视图立体重建系统源码+项目说明.zip 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、...
本文实例为大家分享了C++实现银行排队系统的具体代码,供大家参考,具体内容如下 #include #include #include int cnt=0; //当日客流量 int sum=0; //当日客户排队总时间 typedef struct pnode{ int number; ...
基于C和C++实现的单目多视图立体重建系统源码+项目说明.zip * 数据读取 * 特征点提取和匹配 * 稀疏重建,生成稀疏点云以及估计视图位姿 * 稠密重建,生成每张视图对应的深度图(这里可以进一步生成稠密点云,通过...
double real1,real2,image1,image2,real3,real4,image3,image4; CComplex answer,temp; int score=0; char op; for(int i=0;i;i++) { /////为复数产生随机值 real1=rand()%200-100; image1=rand()%200-100; real2=...
本文实例讲述了C++实现N个骰子的点数算法,分享给大家供大家参考之用。具体方法如下: 题目要求:把n个骰子仍在地上,所有点数 实现代码如下: #include using namespace std; const int g_maxValue = 6; const ...
通过c++来实现tea加密算法,最终编译成so文件,以JNI的方式提供给客户端调用,主要需要解决以下三个问题: 实现tea算法,这都有开源的代码可以实现; 解决padding问题; 密钥做一个混淆,防止编译生成的库文件...
输入和输出是通过C++类来实现的,cin和cout是这些类的实例,他们是在C++语言的外部实现。 在C++语言中,有了一种新的注释方法,就是‘//’,在该行//后的所有说明都被编译器认为是注释,这种注释不能换行。C++中...
变量计算和输出:将num1和num2相加,并将结果赋值给变量sum,然后使用std::cout输出结果。 函数调用:在main函数中调用了printMessage函数,以输出一条消息。 返回值:main函数以return 0;结束,将0作为程序的...
然后再加上当前走小路的疲惫值,即 ans[ne]=ans[nn]-sum[nn]sum[nn]+(sum[nn]+next.v)(sum[nn]+next.v),sum更新为当前走小路所累积的路程,即sum[ne]=sum[nn]+next.v,如果走大路,则sum清空为0;ans更新为ans[ne]=...
14、在C++中,用于实现动态多态性的是( )。 A.内联函数 B.重载函数 C.模板函数 D.虚函数 15、不能说明为虚函数的是( )。 A.析构函数 B.构造函数 C.类的成员函数 D.以上都不对 16、如果一个类至少有一个...
子集和数问题,回溯法实现