# \#455 Assign Cookies
## *給定陣列s[], g[]分別代表每個小孩的需求度和每塊餅乾的滿足度, 當g[j]>=s[i]時, 表示這塊餅乾可以滿足這個小孩(一塊餅單只能給一個小孩, 回傳這些餅乾最多能滿足的小孩數*
## Log
- build 20210828 by syhuang
## 初見
- 對s,j升冪排列, 以遍求最多能發放的小孩數
- 用兩個pointer i, j分別用在s[]和g[], 判斷當前餅乾是否滿足這個小孩, 是則i++ ,j++(代表這塊餅乾發給這個小孩)
- 不滿足時, 僅j++(換下一塊次大的餅乾), 直到滿足為止
- 當小孩全部滿足; 或是餅乾發到結束, 就表示迴圈結束, 回傳小孩-餅乾配對數量就是能發放最多的人數
- 時間複雜度O(nlogn)
- leetcode submit runtime 29%, memory 94%
```javascript=
var findContentChildren = function(g, s) {
//先將s和g升冪排序, 方便知道是否已經滿足題意發足cookie
let toBeReleasedS = s.sort(function(a,b){return a-b});
let queuedG = g.sort(function(a,b){return a-b});
let result = 0;
//對每個小孩子發cookie, 發到cookie發完或是發到最後一位小孩時結束
for(let i=0,j=0; i<queuedG.length && j<toBeReleasedS.length;){
if(toBeReleasedS[j]>=queuedG[i]){//cookie滿足小孩
j++,i++;
result++;
}else{//cookie未能滿足小孩, 拿更大的cookie
j++;
}
}
return result;
};
```
## 備註
- 初見即畢業
## 參考
###### tags: `leetcode`, `leetcode-easy`, `application problem`