今天是第27天刷leetcode,立个flag,打卡60天。
算法挑战链接
455. 分发饼干https://leetcode.cn/problems/assign-cookies/
第一想法
题目理解:G个人分 S块饼干 要求饼干大于或者等于人的肚量。
第一想法:将人按照肚量从小到达排序,饼干也按照尺寸从小到大排序。两个指针,一个指向人,一个指向饼干,都是从0开始。
如果当前人的肚量小于或者等于饼干的尺寸,则两个指针都往前走一步
否则,饼干的指针往前走一步
直到饼干使用完或者人都分完了。
于是代码就出来了:
class Solution {
public int findContentChildren(int[] g, int[] s) {
Arrays.sort(g);
Arrays.sort(s);
int ans = 0;
int sCount = 0;
//for 循环的scount++就是在移动饼干
for(int i = 0; i < g.length && sCount < s.length;sCount++){
if(s[sCount]>=g[i]){
ans++;
i++;
}
}
return ans;
}
}
今日收获
贪心算法的核心是:用局部最优达到整体最优