Leetcode 455. 分发饼干 解题思路及C++实现
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 455. 分发饼干 解题思路及C++实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
解題思路:
這道題跟“田忌賽馬”是一樣的,對于孩子的胃口、餅干的尺寸這兩個容器(數組),先進行排序,然后盡量用小尺寸的餅干滿足小胃口的孩子,所以會用到貪心策略。
因為題目中并沒有說明容器(數組)g和s是否已經是排好序的,所以先進行排序。
給這兩個容器各設置一個指針,表示當前遍歷的孩子編號、餅干編號。
程序循環停止條件:遍歷了所有的孩子,或者遍歷完所有的餅干,表示無法再進行分配了。
循環體:每當餅干尺寸滿足當前孩子的胃口時,就將j餅干分給孩子i,否則,就說明餅干j的尺寸小于孩子i的胃口了,應該去找更大尺寸的餅干,即 j++。
?
class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {//先對g和s進行排序sort(g.begin(), g.end());sort(s.begin(), s.end());int res = 0;int i = 0, j = 0;while(i < g.size() && j < s.size()){if(g[i] <= s[j]){ //第i個孩子的胃口得到了滿足res++;i++;j++;}else j++; //第i個孩子未得到滿足,說明是餅干尺寸太小}return res;} };?
?
?
總結
以上是生活随笔為你收集整理的Leetcode 455. 分发饼干 解题思路及C++实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode 122. 买卖股票的最
- 下一篇: Leetcode 860. 柠檬水找零