1. 程式人生 > 其它 >劍指04-二維陣列中的查詢

劍指04-二維陣列中的查詢

✅做題思路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;
    }
};