這個題目其實很簡單,只要得到每種物品的數量就可以了,用一般的方法也可以做,不過如果使用STL中map 容器的話,那真是輕松加惬意啊!主要是map重載了[]運算符,所以操作起來特別方便。 代碼如下:
#include <string>
#include <vector>
#include <map>
using namespace std;
class GroceryBagger {
public:
int minimumBags(int strength, vector <string> itemType) {
int res = 0;
map <string, int> msi;
for (int i = 0; i < itemType.size(); i++) {
msi[ itemType[i] ] = 0;
}
for (int i = 0; i < itemType.size(); i++) {
++msi[ itemType[i] ];
}
for ( map<string, int>::iterator it = msi.begin();
it != msi.end(); it++) {
res += (it->second + strength - 1) / strength;
}
return res;
}
};