目录
为工作准备的刷题记录。
刚刚一股脑的买了牛客的剑指offer,39.9,看题单才发现不符合自己的期望(算法不够全,贪心什么的比较少),果然,还是不要冲动下单,不过买了还是会刷的,先跟着代码随想录刷吧。
题目链接
题目思路
先排序,然后是两个数组长度。
从小饼干开始遍历,直到找到最小的满足胃口的饼干,人数加一,否则继续遍历饼干,
错误代码
class Solution {
public int findContentChildren(int[] g, int[] s) {
Array.sort(g);
Array.sort(s);
int lens = s.size(), leng = g.size();
int j = 0, ans = 0;
for(int i = 0 ; i < lens; i++){
if( s[i] >= g[j]){
j++;
ans++;
}
}
return ans;
}
}
忘记排序&排序代码写错
错的
这样写才对
求长度的代码错误
不是.size(),是用
s.length
忘记考虑人数多少了
j一直在增加,可能会超出长度,人数到达后要跳出循环
而且注意要先判断j大小
正确代码
class Solution {
public int findContentChildren(int[] g, int[] s) {
Arrays.sort(g);
Arrays.sort(s);
int lens = s.length, leng = g.length;
int j = 0, ans = 0;
for(int i = 0 ; i < lens; i++){
if( j < leng && s[i] >= g[j] ){
j++;
ans++;
}
}
return ans;
}
}