劍指04-二維陣列中的查詢
阿新 • • 發佈:2022-04-01
✅做題思路or感想
分餅乾,經典貪心題
這裡的貪心策略是:用最小的餅乾去滿足食量最少的小孩or用最大的餅乾去滿足食量最大的小孩
這裡我用前者
class Solution { public: int findContentChildren(vector<int>& g, vector<int>& s) { //必須先要給二者進行大小排序 sort(g.begin(), g.end()); sort(s.begin(), s.end()); int index = 0, result = 0; //index代表當前餵食的小孩的索引,result代表成功餵食了的小孩的數量 //這裡注意迴圈中止條件有兩個,因為可能會有小孩數多於餅乾數或者小孩數小於餅乾數的情況 //這裡小孩和餅乾都是從0開始遍歷的,故符合以最小餅乾餵食量最小的小孩的邏輯 for (int i = 0; i < s.size() && index < g.size(); i++) { //如果最小的餅乾能餵飽食量最小的小孩 if (s[i] >= g[index]) { //這個小孩吃飽了,換下一個食量更大或者一樣的 index++; result++; } } return result; } };