zoukankan      html  css  js  c++  java
  • 2016携程测试实习生笔试编程题

    四道大题:

    第一道题,是携程网站有一个725*286(具体不记得了)广告区域,能想到的测试类型及方法。

    写测试用例——2016年1月1日到2016年3月1日同一订单往返机票立减50 全部功能点。

    第二道题,sql语句。(该学sql- -)

    第三道题,编程题:

    有N个球,M个颜色(M小于等于N),求要想从这N个球里拿出全部(M)个颜色的球,至少需要拿多少个。

    思路:

    我又是用map实现的,当map的size==M的时候,就说明颜色已经集齐了,计算一个minNum,然后继续扫描,更新minNum

    感觉效率有点低,先粘上来代码,明天优化一下(集齐颜色后,判断是否一定需要更新minNum)

    #include<iostream>
    #include<map>
    #include<vector>
    using namespace std;
    
    int CollectColor(vector<int> balls,int M){
        map<int,int> collect;
        int minNum=9999,mintemp=9999;
        for(int i=0;i<balls.size();i++){
            collect[balls[i]]=i;   //map记下每个颜色最近出现的位置
            if(collect.size()==M)  //集齐颜色就不再扫描了
            {    
                int maxIndex=0,minIndex=99999;
                for(auto j=collect.begin();j!=collect.end();j++){
                    
                    if((*j).second>maxIndex)
                        maxIndex=(*j).second;
                    if((*j).second<minIndex)
                        minIndex=(*j).second;
                    mintemp=maxIndex-minIndex+1;
                }
                    if(mintemp<minNum)
                        minNum=mintemp;
    
            }
            
        }
        return minNum;
    }
    
    int main(){
        int array1[]={0,1,2,6,7,4,1,1,1,1,2,6,7,2,2,0};
        vector<int> v1(array1,array1+16);
        cout<<CollectColor(v1,6)<<endl;
        return 0;
    }
  • 相关阅读:
    浅谈树状数组与线段树
    BZOJ1367:[Baltic2004]sequence
    浅谈左偏树
    BZOJ4003:[JLOI2015]城池攻占
    BZOJ2809:[APIO2012]dispatching
    BZOJ1455:罗马游戏
    模拟ssh远程执行命令
    基于TCP协议的socket套接字编程
    计算机网络基础知识
    元类( 控制对象产生和控制类产生)模板
  • 原文地址:https://www.cnblogs.com/LUO77/p/5361401.html
Copyright © 2011-2022 走看看