File tree Expand file tree Collapse file tree 6 files changed +214
-0
lines changed Expand file tree Collapse file tree 6 files changed +214
-0
lines changed Original file line number Diff line number Diff line change 195
195
## 贪心算法
196
196
197
197
- [ 贪心算法-概览] ( /算法分类/贪心算法/贪心算法.md )
198
+ - [ 分发饼干] ( /算法分类/贪心算法/分发饼干.md ) ⭐⭐
198
199
199
200
200
201
## 关于
Original file line number Diff line number Diff line change @@ -115,6 +115,7 @@ module.exports = {
115
115
title : '贪心算法' ,
116
116
children : [
117
117
'/algorithm/贪心算法/贪心算法' ,
118
+ '/algorithm/贪心算法/分发饼干' ,
118
119
]
119
120
} ,
120
121
] ,
Original file line number Diff line number Diff line change 71
71
## 贪心算法
72
72
73
73
- [ 贪心算法-概览] ( ./贪心算法/贪心算法.md )
74
+ - [ 分发饼干] ( ./贪心算法/分发饼干.md ) ⭐⭐
Original file line number Diff line number Diff line change
1
+ ---
2
+ {
3
+ " title " : " 分发饼干" ,
4
+ }
5
+ ---
6
+
7
+
8
+ ## 题目
9
+
10
+ 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 ` gi ` ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 ` sj ` 。如果 ` sj >= gi ` ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。
11
+
12
+ 注意:
13
+
14
+ 你可以假设胃口值为正。
15
+ 一个小朋友最多只能拥有一块饼干。
16
+
17
+ 示例 1:
18
+ ``` js
19
+ 输入: [1 ,2 ,3 ], [1 ,1 ]
20
+
21
+ 输出: 1
22
+
23
+ 解释:
24
+ 你有三个孩子和两块小饼干,3 个孩子的胃口值分别是:1 ,2 ,3 。
25
+ 虽然你有两块小饼干,由于他们的尺寸都是1 ,你只能让胃口值是1 的孩子满足。
26
+ 所以你应该输出1 。
27
+ ```
28
+
29
+ 示例 2:
30
+
31
+ ``` js
32
+ 输入: [1 ,2 ], [1 ,2 ,3 ]
33
+
34
+ 输出: 2
35
+
36
+ 解释:
37
+ 你有两个孩子和三块小饼干,2 个孩子的胃口值分别是1 ,2 。
38
+ 你拥有的饼干数量和尺寸都足以让所有孩子满足。
39
+ 所以你应该输出2.
40
+ ```
41
+
42
+ ## 思路
43
+
44
+ > 优先使用最小的饼干满足最小的胃口
45
+
46
+ - 孩子胃口,饼干大小从小到大排序
47
+ - 优先满足胃口小的孩子,满足后换一个胃口大的
48
+ - 使用糖果进行尝试,满足后换下一个大饼干
49
+
50
+
51
+ ## 代码
52
+
53
+
54
+ ``` js
55
+ var findContentChildren = function (g , s ) {
56
+ g = g .sort ((a , b ) => a - b);
57
+ s = s .sort ((a , b ) => a - b);
58
+ let num = 0 ;
59
+ let cookie = 0 ;
60
+ let child = 0 ;
61
+ while (cookie < s .length && child < g .length ) {
62
+ if (g[child] <= s[cookie]) {
63
+ num += 1
64
+ child += 1
65
+ }
66
+ cookie += 1
67
+ }
68
+ return num
69
+ };
70
+ ```
71
+
72
+
73
+ ## 考察点
74
+
75
+ - 贪心算法
Original file line number Diff line number Diff line change
1
+ ## 题目
2
+
3
+ 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 ` gi ` ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 ` sj ` 。如果 ` sj >= gi ` ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。
4
+
5
+ 注意:
6
+
7
+ 你可以假设胃口值为正。
8
+ 一个小朋友最多只能拥有一块饼干。
9
+
10
+ 示例 1:
11
+ ``` js
12
+ 输入: [1 ,2 ,3 ], [1 ,1 ]
13
+
14
+ 输出: 1
15
+
16
+ 解释:
17
+ 你有三个孩子和两块小饼干,3 个孩子的胃口值分别是:1 ,2 ,3 。
18
+ 虽然你有两块小饼干,由于他们的尺寸都是1 ,你只能让胃口值是1 的孩子满足。
19
+ 所以你应该输出1 。
20
+ ```
21
+
22
+ 示例 2:
23
+
24
+ ``` js
25
+ 输入: [1 ,2 ], [1 ,2 ,3 ]
26
+
27
+ 输出: 2
28
+
29
+ 解释:
30
+ 你有两个孩子和三块小饼干,2 个孩子的胃口值分别是1 ,2 。
31
+ 你拥有的饼干数量和尺寸都足以让所有孩子满足。
32
+ 所以你应该输出2.
33
+ ```
34
+
35
+ ## 思路
36
+
37
+ > 优先使用最小的饼干满足最小的胃口
38
+
39
+ - 孩子胃口,饼干大小从小到大排序
40
+ - 优先满足胃口小的孩子,满足后换一个胃口大的
41
+ - 使用糖果进行尝试,满足后换下一个大饼干
42
+
43
+
44
+ ## 代码
45
+
46
+
47
+ ``` js
48
+ var findContentChildren = function (g , s ) {
49
+ g = g .sort ((a , b ) => a - b);
50
+ s = s .sort ((a , b ) => a - b);
51
+ let num = 0 ;
52
+ let cookie = 0 ;
53
+ let child = 0 ;
54
+ while (cookie < s .length && child < g .length ) {
55
+ if (g[child] <= s[cookie]) {
56
+ num += 1
57
+ child += 1
58
+ }
59
+ cookie += 1
60
+ }
61
+ return num
62
+ };
63
+ ```
64
+
65
+
66
+ ## 考察点
67
+
68
+ - 贪心算法
Original file line number Diff line number Diff line change
1
+ ## 题目
2
+
3
+ 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 ` gi ` ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 ` sj ` 。如果 ` sj >= gi ` ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。
4
+
5
+ 注意:
6
+
7
+ 你可以假设胃口值为正。
8
+ 一个小朋友最多只能拥有一块饼干。
9
+
10
+ 示例 1:
11
+ ``` js
12
+ 输入: [1 ,2 ,3 ], [1 ,1 ]
13
+
14
+ 输出: 1
15
+
16
+ 解释:
17
+ 你有三个孩子和两块小饼干,3 个孩子的胃口值分别是:1 ,2 ,3 。
18
+ 虽然你有两块小饼干,由于他们的尺寸都是1 ,你只能让胃口值是1 的孩子满足。
19
+ 所以你应该输出1 。
20
+ ```
21
+
22
+ 示例 2:
23
+
24
+ ``` js
25
+ 输入: [1 ,2 ], [1 ,2 ,3 ]
26
+
27
+ 输出: 2
28
+
29
+ 解释:
30
+ 你有两个孩子和三块小饼干,2 个孩子的胃口值分别是1 ,2 。
31
+ 你拥有的饼干数量和尺寸都足以让所有孩子满足。
32
+ 所以你应该输出2.
33
+ ```
34
+
35
+ ## 思路
36
+
37
+ > 优先使用最小的饼干满足最小的胃口
38
+
39
+ - 孩子胃口,饼干大小从小到大排序
40
+ - 优先满足胃口小的孩子,满足后换一个胃口大的
41
+ - 使用糖果进行尝试,满足后换下一个大饼干
42
+
43
+
44
+ ## 代码
45
+
46
+
47
+ ``` js
48
+ var findContentChildren = function (g , s ) {
49
+ g = g .sort ((a , b ) => a - b);
50
+ s = s .sort ((a , b ) => a - b);
51
+ let num = 0 ;
52
+ let cookie = 0 ;
53
+ let child = 0 ;
54
+ while (cookie < s .length && child < g .length ) {
55
+ if (g[child] <= s[cookie]) {
56
+ num += 1
57
+ child += 1
58
+ }
59
+ cookie += 1
60
+ }
61
+ return num
62
+ };
63
+ ```
64
+
65
+
66
+ ## 考察点
67
+
68
+ - 贪心算法
You can’t perform that action at this time.
0 commit comments