455. 分发饼干
题目要求:
假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。
对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i] ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。
题解思路:
- 对两个数组进行排序(题目没说是有序。虽然看例子是有序的。);
- 遍历两个数组(每次遍历的饼干数组开始是从去掉符合条件或者不符合条件的饼干后开始的。(有点绕));
- 符合条件,将存放满足条件的变量值+1;
- 返回最大数值。
题解代码:
class Solution:
def findContentChildren(self, g: List[int], s: List[int]) -> int:
#先对两个数组排序
g.sort()
s.sort()
#计算两个数组的长度
ng = len(g)
sg = len(s)
#初始化符合条件的输出nums为0
nums = 0
#初始化店里到的第一个饼干的位置
begin = 0
#遍历胃口值得数组
for i in range(ng):
#遍历没有把饼干分出去的子数组
for j in range(begin,sg):
#判断是否满足条件
##符合分配要求则nums+1;begin+1
if g[i] <= s[j]:
nums +=1
begin +=1
break
##不符合条件,说明饼干太小,遍历下一个饼干begin+1
else:
begin += 1
continue
return nums
(“It may not be pretty, but we headed to the city.(其貌不扬,但仍乘风破浪。)
”FIGHTING. . . .)