欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

寒假每日一题Week2 day10 AcWing 1532. 找硬币(哈希表)

程序员文章站 2022-07-12 21:36:30
...

AcWing 1532. 找硬币

题意:

给你n种面值的硬币,
问是否可以找到两个硬币的面值之和等于m
如果找得到,输出第一个v1最小的解。
反之输出无解。

思路:

边读数据,边记录即可。
假如有两个硬币的话,更新最小值就行了。

AC

# include <bits/stdc++.h>
using namespace std;
int main(){
    unordered_map<int,int>ma;
    int n, m, x, mi=1e9+10;
    cin>>n>>m;
    for(int i = 1; i <= n; i++ ){
        cin>>x;
        if(ma.count(m-x))mi = min(mi, min(x,m-x));
        ma[x]++;
    }
    if(mi==1e9+10)puts("No Solution");
    else cout<<mi<<' '<<m-mi;
    return 0;
}
相关标签: 贪心&&暴力 stl