1
jiakangzhong 2018-08-30 15:31:08 +08:00
给了估计也看不懂
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n; long long a[50010],k; int main() { scanf("%lld%d",&k,&n); bool temp=false; for(int i=1;i<=n;i++)//从第一位开始录入 scanf("%lld",&a[i]); sort(a+1,a+n+1); for(int i=1;i<=n;i++){//核心代码 if((a[i]+a[n])<k)continue;//如果相加小于题定值,退出本次循环 for(int j=i+1;j<=n&&a[i]+a[j]<=k;j++){ if(a[i]+a[j]==k){ temp=true; printf("%lld %lld\n",a[i],a[j]); } } } if(!temp)printf("No Solution\n"); return 0; |
2
raycool 2018-08-30 15:32:50 +08:00
leetcode 上的第一题?
|
3
ranoff 2018-08-30 15:54:38 +08:00
给个思路吧:先排序,排序的时候顺便把小于 k 和大于 k 的拆开,然后遍历
|
5
Yourshell 2018-08-30 15:58:47 +08:00 via iPhone
x=k-list[n], x==list[m]
感觉就是 leetcode 第一题 |
7
imn1 2018-08-30 16:25:17 +08:00
如果不考虑优化,py 代码很简单
pandas 第一列 = 原始数列 第二列 = K - 第一列 第三列 = 第二列 in 第一列 (bool) 提取第三列为 true 的所有行,并去掉第三列 求差同理 |
8
EV3 2018-09-01 18:40:28 +08:00
是两数之和吗?
我的解法 https://www.jianshu.com/p/6f92ab0fe509 就是效率比较感人 执行用时:988 ms 超过 62.31 % 的 python 提交记录 自学 Python 2 个月 之前没有编程经历 请勿见笑.... |