1. 很典型的双指针的应用,将数组按照非降排列,两个指针从一头一尾开始包抄,若等于(等于要放在第一个)则返回结果结束程序,小于则左指针右移,大于则右指针左移。

2. 起初还担心,如果得到的结果不是那个较小数最小的怎么办,其实多虑,从两边逼近,得到的一定是这个结果。

3. 比起用散列解决这道题,双指针不用额外考虑两个数相等的情况,因为在序列中相等的两个数指针不一样,不用担心1个数当成两个用。

AC代码

#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<bits/stdc++.h>
#include<stdlib.h>
#include<time.h>using namespace std;
typedef long long LL;const int maxn = 100000;
const int INF = 1000000000;//INF:下确界
const LL SUP = (1LL<<63)-1;//SUP:上确界
const double eps = 1e-5;int main(){int n,m;int A[maxn];scanf("%d%d",&n,&m);for(int i=0;i<n;i++){scanf("%d",&A[i]);}sort(A,A+n);int i=0,j=n-1;while(i<j){if(A[i]+A[j]==m){printf("%d %d",A[i],A[j]);return 0;}else if(A[i]+A[j]<m)i++;else if(A[i]+A[j]>m)j--;}printf("No Solution");  return 0;
}

1048 Find Coins(two pointers解法)相关推荐

  1. 1048 Find Coins(散列解法)

    1. 开始测试点3答案错误,看参考书发现是,读题时根据硬币最大面值500设置的数组大小,但是后来会用总面值减去硬币面值,这个大小在[1,999),因此散列表的大小应该设为1010. 2. 学会了一个小 ...

  2. PAT甲级1048 Find Coins :[C++题解]哈希表、两个硬币之和为定值

    文章目录 题目分析 题目链接 题目分析 来源:acwing 题意:找两个数,和为定值. 分析:本题在各大OJ上几乎都有, 反正在Leetcode上做过.本题有两种常见的解法,一种是双指针,另一种是用哈 ...

  3. 【最简解法】1048 Find Coins (25 分)_18行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Eva loves to collect coins from all over the universe, including ...

  4. 1048 Find Coins(二分法解法)

    非常基础的二分法-寻找序列中是否存在某一条件的元素 的应用 AC代码 #include<cstdio> #include<iostream> #include<set&g ...

  5. 【PAT甲级】1048 Find Coins (25 分) C++ 全部AC

    题目 给你一个sum,以及拥有的钱 让你找出一个组合,正好用两张钱付清sum,注意如果有多个结果,输出其中最小的 这道题注意稍微优化一下算法,要不然卡在测试点3,4 我是用二重循环过了的,只要注意输入 ...

  6. 1030 完美数列(two pointers解法)

    1. 这道题出现在二分法,但是特殊之处在于,双指针是嵌套的,程序看上去有些像暴力枚举,但其实是利用了,如果i<j,a[i]*p>=a[j],那么一定有k在[i,j]范围内,a[i]*p&g ...

  7. 1048 Find Coins

    水题,详见代码- #include <iostream> #include <string.h> #include <cstdio> #include <al ...

  8. PAT题型分类 记录汇总

    这篇博客记录了我在跟着<算法笔记>以及习题册<算法笔记 上机实践指南>刷了PAT的题目之后的一些解题方法的总结与心得. 第三章 入门模拟 1. 简单模拟 一般解题思路 这一小节 ...

  9. PAT甲级训练合集(1-70)

    本章题解跳转 考点 P1001 数字的数组表示和处理 P1002 多项式的数组表示和处理 P1003 深度优先搜素 P1004 深度优先搜素 P1005 哈希表 P1006 P1007 数组子区间求和 ...

最新文章

  1. 心得丨对于机器学习,到底该选择哪种编程语言
  2. 获得两点之间连续坐标,向量加法、减法、乘法的运用
  3. 毕业论文图像快速画出
  4. 2015年01月30日 - Git五分钟教程
  5. 使用nsenter进入Docker容器
  6. 大学的最后一年有一门课程叫“人生”。
  7. BigDecimal 使用浅析
  8. 生成透明带水印的图片
  9. 讲解HTML和CSS(超详细)
  10. NOIP模拟题——复制粘贴2
  11. SeNet || 注意力机制——源代码+注释
  12. ITE之GUI设计----过场动画
  13. android KE or NE分析
  14. 使用微信jssdk接口调用语音,图片,分享等功能
  15. SparkSQL知识点总结
  16. android智能家居wifi原理图,WiFi模块为你讲解WiFi插座原理
  17. Kinect+OpenNI学习笔记之8(Robert-Walter手部提取代码的分析)
  18. 一篇震惊西方世界的中国人的论文!
  19. 智能综合布线管理软件实现机房配线可视化管理
  20. 华南师范大学计算机学院重修,华南师范大学计算机学院、软件学院本科生学年评优工作条例...

热门文章

  1. iOS Named colors do not work prior to iOS 11.0问题解决
  2. centos7下Gitlab+Jenkins部署持续集成CI环境
  3. 路由器配置实践 教你如何在Linux中三台主机两个网段互相通信
  4. 东方日升重磅推出白色双玻组件 助力推动度电成本下滑
  5. 高德API+Python解决租房问题
  6. Robot Framework(十八) 支持工具
  7. C#(WPF)去除事件中注册的事件处理方法!
  8. Linux-find命令应用举例-按时间筛选和删除文件
  9. 201621123057 《Java程序设计》第12周学习总结
  10. SQL2K数据库开发二之查看和修改Sample数据库