这个题目要尽可能的满足更多的孩子能得到饼干所以饼干和胃口要尽可能的相近,不能用很大的饼干满足胃口很小的孩子,这样容易浪费,得不到最大的数量。这样避免不了很多次查找遍历,最好的办法就是提前把胃口和饼干进行排序形成有序序列,在后面的查找中可以尽可能的减少时间。虽然排序也需要时间但是在代码整体整洁和可读性时间复杂度面前其实是最好的选择:
public int FindContentChildren(int[] g, int[] s)
{
if (s.Length == 0 || s.Length == 0) return 0;
Array.Sort(g);
Array.Sort(s);
var gIndex = 0;
var sIndex = 0;
while (gIndex < g.Length && sIndex < s.Length)
{
if (g[gIndex] <= s[sIndex])
{
gIndex++;
}
sIndex++;
}
return gIndex;
}
这样写都可以干到100%???