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;
    }
  • 相关阅读:
    PHP自动加载(__autoload和spl_autoload_register)
    抽象工厂模式
    工厂方法模式
    简单工厂模式
    组合
    二叉树的层次遍历 II
    umask命令
    二叉树的所有路径
    CDN缓存的理解
    Js中RegExp对象
  • 原文地址:https://www.cnblogs.com/LUO77/p/5361401.html
Copyright © 2011-2022 走看看