作為一個(gè)馬場(chǎng)的主人,你要安排你的n匹賽馬和另一個(gè)馬場(chǎng)的n匹馬比賽。你已經(jīng)知道了對(duì)方馬場(chǎng)的出戰(zhàn)表厘线,即參加每一場(chǎng)的馬的強(qiáng)壯程度。當(dāng)然你也知道你自己的所有馬的強(qiáng)壯程度出革。我們假定比賽的結(jié)果直接由馬的強(qiáng)壯程度決定造壮,即更壯的馬獲勝(若相同則雙方均不算獲勝),請(qǐng)你設(shè)計(jì)一個(gè)策略骂束,使你能獲得盡量多的場(chǎng)次的勝利费薄。
給定對(duì)方每場(chǎng)比賽的馬的強(qiáng)壯程度oppo及你的所有馬的強(qiáng)壯程度horses(強(qiáng)壯程度為整數(shù),且數(shù)字越大越強(qiáng)壯)同時(shí)給定n栖雾,請(qǐng)返回最多能獲勝的場(chǎng)次楞抡。
測(cè)試樣例:
輸入:[1,2,3],[1,2,3],3
返回:2
class HorseRace {
public:
int winMost(vector<int> oppo, vector<int> horses, int n) {
// write code here
sort(oppo.begin(), oppo.end());
sort(horses.begin(), horses.end());
int res = 0;
for(int i=n-1; i>=0; --i){
if(oppo.back() < horses.back()){
oppo.pop_back();
horses.pop_back();
++res;
}else{
oppo.pop_back();
}
}
return res;
}
};