zoukankan      html  css  js  c++  java
  • 算法初步——哈希表A1048Find Coins

    思路: two pointers

    #include <bits/stdc++.h>
    #include<math.h>
    #include <string>
    using namespace std;
    const int MAX_LEN = 100005;
    bool cmp(int a,int b){
        return a>b;
    }
    int main(){
        //int temp[MAX_LEN];
        /*for(int i=0;i<MAX_LEN;++i){
            temp[i] = 0;
        }*/
        int n,m;
        cin>>n;
        cin>>m;
        int temp[n];
        for(int i=0;i<n;++i){
            cin>>temp[i];
        }
        sort(temp,temp+n,cmp);
        /*int count = 0;
        for(int i=0;i<MAX_LEN;++i){
            if(temp[i] > 0){
                count++;
            }
        }*/
        int fir = n-1;
        int end = 0;
        while(end != fir){
            if(temp[fir] + temp[end] < m){
                fir--;
            }
            if(temp[fir] + temp[end] > m){
                end++;
             }
             if(temp[fir] + temp[end] == m){
                 cout<<temp[fir]<<" "<<temp[end];
                 break;
             }   
        }
        if(end == fir){
            cout<<"No Solution";
        }
        system("pause");
        return 0;
    } 

    注意要continue

    #include <bits/stdc++.h>
    #include<math.h>
    #include <string>
    using namespace std;
    const int MAX_LEN = 100005;
    bool cmp(int a,int b){
        return a>b;
    }
    int main(){
        //int temp[MAX_LEN];
        /*for(int i=0;i<MAX_LEN;++i){
            temp[i] = 0;
        }*/
        int n,m;
        cin>>n;
        cin>>m;
        int temp[n];
        for(int i=0;i<n;++i){
            cin>>temp[i];
        }
        sort(temp,temp+n,cmp);
        /*int count = 0;
        for(int i=0;i<MAX_LEN;++i){
            if(temp[i] > 0){
                count++;
            }
        }*/
        int fir = n-1;
        int end = 0;
        while(end != fir){
            if(temp[fir] + temp[end] < m){
                fir--;
                continue;//注意要continue 
            }
            if(temp[fir] + temp[end] > m){
                end++;
                continue;//注意要continue 
             }
             if(temp[fir] + temp[end] == m){
                 cout<<temp[fir]<<" "<<temp[end];
                 break;
             }   
        }
        if(end == fir){
            cout<<"No Solution";
        }
        system("pause");
        return 0;
    } 
  • 相关阅读:
    如何实现序列化为json
    unity中camera摄像头控制详解
    eclipse配置c开发环境
    uml和模式01
    angular2开发01
    微信公众平台开发01
    最新无线网卡驱动安装
    交换ctrl和caps_loack的新方法
    web.xml文件详解
    设计模式中的里氏代换原则
  • 原文地址:https://www.cnblogs.com/JasonPeng1/p/12163089.html
Copyright © 2011-2022 走看看