六一儿童节,老师带了很多好吃的巧克力到幼儿园。每块巧克力j的重量为w[j],对于每个小朋友i,当他分到的巧克力大小达到h[i] (即w[j]>=h[i]),他才会上去表演节目。老师的目标是将巧克力分发给孩子们,使得最多的小孩上台表演。可以保证每个w[i]> 0且不能将多块巧克力分给一个孩子或将一块分给多个孩子。
1
https://www.nowcoder.com/questionTerminal/d2dfc62bf1ba42679a0e358c57da9828https://www.nowcoder.com/questionTerminal/6736cc3ffd1444a4a0057dee89be789b?orderByHotValue=1&page=1&onlyReference=false 来源:牛客网
优先想到将数据先排序,然后将两个数组进行比较即可
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n,m; cin >> n; vector<int> h(n); for(int i=0;i<n;++i){ cin >> h[i]; } cin >> m; vector<int> w(m); for(int i=0;i<m;++i){ cin >> w[i]; } sort(h.begin(),h.end()); sort(w.begin(),w.end()); int i=0; int j=0; int res = 0; while(i<n && j<m){ if(h[i] <= w[j]){ res++; i++; j++; } else j++; } cout << res <<endl; return 0; }