455. 分發餅幹
阿新 • • 發佈:2019-03-02
ret end 數組 urn std solution cto child clas
典型的利用貪婪算法的題目,我們可以首先對兩個數組進行排序,讓小的在前面。然後我們先拿最小的餅幹給胃口最小的小朋友,看能否滿足,能的話,我們結果ans自加1,然後再拿下一個餅幹去滿足下一位小朋友;如果當前餅幹不能滿足當前小朋友,那麽我們就用下一塊稍大一點的餅幹去嘗試滿足當前的小朋友,當餅幹發完了或者小朋友沒有了我們停止遍歷。
class Solution { public: int findContentChildren(vector<int>& g, vector<int>& s) { std::sort(g.begin(),g.end()); std::sort(s.begin(),s.end());int ans=0; int j=0; for(int r:g) { while(j<s.size()&&s[j]<r) { ++j; } if(j<s.size()) { ++ans; ++j; } } return ans; } };
455. 分發餅幹