//找出数组中三个数相加为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的更多相关文章

随机推荐

  1. jar转dll

    IKVM http://www.cnblogs.com/luckeryin/archive/2012/03/28/2421274.html

  2. appjs desktop2

    var express = require('express');var path = require('path');var favicon = require('serve-favicon');v ...

  3. (DFS)hdoj1198-Farm Irrigation

    题目链接 DFS的简单应用,比较繁琐的是处理输入的英文字母.用并查集也可以做(可是笔者现在还没有掌握并查集,之前只用过一次,以后学会回来补上) #include<cstdio> #incl ...

  4. STL 自学

    STL 一.vector动态数组 1 包含头函数 #include<vector> 2 函数的声明: vector<int> v; vector<int> v[ma ...

  5. IT公司100题-9-判断整数序列是不是二元查找树的后序遍历结果

    问题描述: 输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果. 如果是返回true,否则返回false. 例如输入4, 8, 6, 12, 16, 14, 10,由于这一整数序列是如下树 ...

  6. Hibernate中的多对多映射

    1.需求 项目与开发员工 一个项目,有多个开发人员 一个开发人员,参与多个项目 [多对多] 2.实体bean设计 Project: public class Project { private int ...

  7. struts中拦截器的开发

    1.开发Interceptor类 用户自定义的拦截器一般需要继承AbstractInterceptor类,重写intercept方法 public class UserInterceptor exte ...

  8. 跨域SSO的实现

    翻译自CodeProject网站ASP.NET9月份最佳文章:Single Sign On (SSO) for cross-domain ASP.NET applications. 翻译不妥之处还望大 ...

  9. Eclipse快捷键 10个最有用的快捷键---摘录

    55 48 Eclipse中10个最有用的快捷键组合  一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到 ...

  10. DropMaster

    DropMaster 是4个原生 VCL 控件的集合,在 Delphi 和 C++Builder 中使用.虽然包含在 Delphi 和 C++Builder 中的 VCL 组件允许同一程序内窗口之间的 ...