四道大題:
第一道題,是攜程網站有一個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; }