threeSum_0
//找出数组中三个数相加为0,返回存在的组数
//输入指正*A,长度为size,返回*B和长度num
int threeSum_0(int *A,int size,int *B,int &num)
{
vector<int> temp(A, A + size); //使用vector操作数据
sort(temp.begin(),temp.end());//sort
//夹逼
auto last = temp.end();
int *p = new int[];//p为临时数组,大小自己设置
for (auto a = temp.begin(); a <prev(last,); a++){
auto b = next(a);
auto c = prev(last);
while (b < c){
if (*a + *b + *c > )
--c;
else if (*a + *b + *c < )
++b;
else{
*(p++) = *a;
*(p++) = *b;
*(p++) = *c;
num = num + ;
++b;
--c;
}
}
}
p = p - num;
for (int i = ; i < num; i++)
B[i] = p[i];
delete[] p;
return num/; //符合条件的组数
}
threeSum_0的更多相关文章
随机推荐
- jar转dll
IKVM http://www.cnblogs.com/luckeryin/archive/2012/03/28/2421274.html
- BZOJ1737 [Usaco2005 jan]Naptime 午睡时间
断环然后裸DP就好了... $f[i][j][k]$表示1号时间段没有被算入答案,到了第$i$个时间段,一共选了$j$个时间段,$k = 0 /1$表示第i个时间段有没有被算进答案的最优值 $g[i] ...
- mysql创建PATH快捷
1.使其临时生效 PATH=$PATH:/usr/local/mysql/bin 2.永久生效 编辑/etc/profile 添加第79列 然后source /etc/profile 3.输入命令m ...
- Grunt设置
Grunt完成对LESS实时编译. 安装 安装grunt需要先安装node.js. 之后需要借助npm来安装grunt-cli,在cmd中npm install -g grunt-cli.(测试gru ...
- fseek ftell rewind
下面几个函数的头文件 : <stdio.h> fseek int fseek( FILE *stream, long offset, int origin ); 第一个参数stream ...
- 学习KMP算法的一点小心得
KMP算法应用于 在一篇有n个字母的文档中 查找某个想要查找的长度为m的单词:暴力枚举:从文档的前m个字母和单词对比,然后是第2到m+1个,然后是第3到m+2个:这样算法复杂度最坏就达到了O(m*n) ...
- 【C++】String类实现
//string.h #include <iostream> using namespace std; class String; istream& operator>> ...
- 面试题目-c和c++的区别
在很大程度上,标准C++是标准C的超集.实际上,所有C程序也是C++程序,然而,两者之间有少量区别.下面简要介绍一下最重要的区别. 1. 在C++中,局部变量可以在一个程序块内在任何地方声明,在 ...
- 推荐一款作图神器:ProcessOn
本人近日发现一款作图神器:ProcessOn 它是一款在线的作图工具,完全国产,前台是用HTML5 Canvas加javascript做绘图,后台用java实现数据处理和图片生成, 整站UI基本类似 ...
- PHP ceil() 函数
定义和用法 ceil() 函数向上舍入为最接近的整数. 语法 ceil(x) 参数 描述 x 必需.一个数. 说明 返回不小于 x 的下一个整数,x 如果有小数部分则进一位.ceil() 返回的类型仍 ...