博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
平安科技2019秋招--查找元素
阅读量:5035 次
发布时间:2019-06-12

本文共 828 字,大约阅读时间需要 2 分钟。

分析:枚举a和b,在排序后的数组里二分查找c=-a-b。

注意:在找c的时候不能和a和b重复。

【参考代码】

#include 
using namespace std;const int N=1000+5;const int inf=0x3f3f3f3f; int n;int a[N];set
> vis;multiset
s;//用multiset是因为有重复元素的存在 int main(){ scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); s.insert(a[i]); } sort(a+1,a+1+n); for(int i=1;i<=n;i++){ s.erase(s.find(a[i])); for(int j=i+1;j<=n;j++){ s.erase(s.find(a[j])); if(s.count(-a[i]-a[j])){ int b[3]={a[i],a[j],-a[i]-a[j]}; sort(b,b+3); auto p=make_pair(b[0],b[1]); if(!vis.count(p)){//去重,只要b[0]和b[1]在vis没找到就说明这是一个新的三元组 printf("%d %d %d\n",a[i],a[j],-a[i]-a[j]); vis.insert(p); } } s.insert(a[j]); } s.insert(a[i]); } return 0;}

  

  

转载于:https://www.cnblogs.com/cstdio1/p/11377028.html

你可能感兴趣的文章
设计模式之-模版方法(Template Method Design Pattern)
查看>>
HTTPS Everywhere – 保障隐私和信息安全的利器
查看>>
A380上11万一张的机票什么享受?来看看
查看>>
Wordpress博客写完后段首无法空格怎么办?
查看>>
Ubuntu 下自定义shell
查看>>
sqlserver还原3101
查看>>
协同过滤算法之组合加权评分
查看>>
css3基础
查看>>
Motion Design for iOS
查看>>
成立仅8个月的个人网站,月收入几十万美金,很难做到吗?
查看>>
machine learning
查看>>
vue实例讲解之vue-router的使用
查看>>
SD省队集训2019Day9之“轻拍翻转小魔女”
查看>>
hoj2353-Card Hands
查看>>
(还原本质)编程基础: 基本原理
查看>>
CTE初识
查看>>
快速WCF
查看>>
odoo xml 时间搜索条件
查看>>
git-git remote
查看>>
《人月神话》读书笔记 PB16060710冯富禹
查看>>