1048. Find Coins (25)

原创 2015年11月20日 13:50:41

1.和leetcode的two sum一样

2.采用哈希表记录已经遍历过的数据,target=pay-num[i],查找num[target]是否在哈希表中有,如果有,则压进ans容器,最后进行排序输出;

3.时间复杂度为o(n)


AC代码如下:

#include <iostream>
#include <stdio.h>
#include <vector>
#include <stack>
#include <algorithm>
#include <memory.h>
#include <map>
#include <set>
#include "limits.h"
using namespace std;
/*
 8 15 
 1 2 8 7 2 4 11 15
 
 
 7 14
 1 8 7 2 4 11 15
 */
bool cmp(const pair<int,int>&a,const pair<int,int>&b)
{
    return a.first<b.first;
}

int main(void)
{
    int coinSum,pay;
    scanf("%d %d",&coinSum,&pay);
    int *coin=new int[coinSum];
    int target;
    int *haveCoin=new int[501];
    memset(haveCoin, 0, sizeof(haveCoin));
    vector<pair<int,int>> ans(0);
    for(int i=0;i<coinSum;i++)
    {
        scanf("%d",&coin[i]);
        target=pay-coin[i];
        if(target>=0&&target<=500&&haveCoin[target]>0)
        {
            int a=min(coin[i],target);
            int b=pay-a;
            ans.push_back({a,b});
        }
        haveCoin[coin[i]]++;
    }
    sort(ans.begin(),ans.end(),cmp);
    if(ans.size()>0)
        printf("%d %d\n",ans[0].first,ans[0].second);
    else
        printf("No Solution\n");
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

PAT A1048. Find Coins (25)

Eva loves to collect coins from all over the universe, including some other planets like Mars. One d...
  • jolivan
  • jolivan
  • 2017年02月12日 14:00
  • 75

PAT-A 1048. Find Coins (25)

HashTable配对 Or 二分查找 or Two pointers

pat1048Find Coins (25)

题意分析: (1)给出若干个面值不同的硬币,可以重复,再给出任意一个金额,问是否能在这些硬币当中找出两个面值之和等于所给的金额,若有多种组合,给出具有面值最小的那个组合。 (2)这题是一种超级经典...

浙江大学PAT_甲级_1048. Find Coins (25)

题目链接:点击打开链接 Eva loves to collect coins from all over the universe, including some other plane...

pat 1048. Find Coins (25)

1048. Find Coins (25) 时间限制 50 ms 内存限制 65536 kB 代码长度限制 16000 B ...
  • wyh7280
  • wyh7280
  • 2015年07月20日 22:12
  • 297

【PAT】1048. Find Coins (25)

题目链接:http://pat.zju.edu.cn/contests/pat-a-practise/1048 题目描述: Eva loves to collect coins from al...

PAT 1048. Find Coins (25)

1048. Find Coins (25) 时间限制 50 ms 内存限制 65536 kB 代码长度限制 16000 B ...

PAT (Advanced Level) Practise 1048 Find Coins (25)

1048. Find Coins (25) 时间限制 50 ms 内存限制 65536 kB 代码长度限制 16000 B ...

1048. Find Coins (25)

题目: Eva loves to collect coins from all over the universe, including some other planets like Ma...

[折半查找]PAT1048 Find Coins

题意:在一堆数据中找出两个数使得这两个数相加等于给出的数,如果有多种选择输出那个含有最小值的组合。 思路:因为数据量较大,所以暴力搜索超时是肯定的,因此选用折半查找。先排序枚举第一个数字,再查找第二个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:1048. Find Coins (25)
举报原因:
原因补充:

(最多只允许输入30个字)