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;
    } 
  • 相关阅读:
    Django ORM多表操作
    Django 单表查询作业-笔记
    python 2 编码问题
    HTML-Bootstrap下载和基本使用
    Django ORM单表操作之增删改查
    Django ORM简介和单表创建的设置和过程
    Django --总结 之URL路由控制 视图相应,视图请求,和模板语法
    Django URL控制器
    JAVA编程
    UMI 的原理分析带有 UMI 的数据
  • 原文地址:https://www.cnblogs.com/JasonPeng1/p/12163089.html
Copyright © 2011-2022 走看看