1. 程式人生 > >455. 分發餅幹

455. 分發餅幹

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. 分發餅幹