auto commit

This commit is contained in:
CyC2018 2019-10-31 01:02:14 +08:00
parent 3d61da46f5
commit 0cb51ecefa
5 changed files with 32 additions and 36 deletions

View File

@ -80,20 +80,12 @@
## :memo: 后记
## 微信公众号
更多精彩内容将发布在微信公众号 CyC2018 你也可以在公众号后台和我交流学习和求职相关的问题另外公众号提供了该项目的 PDF 等离线阅读版本也提供了一份技术面试复习大纲不仅系统整理了面试知识点而且标注了各个知识点的重要程度从而帮你理清多而杂的面试知识点回复 CyC 即可领取资料
<div align="center">
<br>
<a href="https://www.nowcoder.com/discuss/137593?from=cyc_github"> 我的面经 </a> / <a href="https://cyc2018.github.io"> 我的简历 </a> / <a href="https://github.com/CyC2018/Markdown-Resume"> 简历模版 </a> / <a href="https://github.com/CyC2018/Job-Recommend"> 内推 </a> / <a href="https://xiaozhuanlan.com/CyC2018"> 专栏 </a> / <a href="assets/QQ2群.png"> QQ </a>
<br><br>
<img width="320px" src="assets/公众号二维码-1.png"></img>
</div>
### 更多内容
<a href="https://www.nowcoder.com/discuss/137593?from=cyc_github"> 我的面经 </a> / <a href="https://cyc2018.github.io"> 我的简历 </a> / <a href="https://github.com/CyC2018/Markdown-Resume"> 简历模版 </a> / <a href="https://github.com/CyC2018/Job-Recommend"> 内推 </a> / <a href="https://xiaozhuanlan.com/CyC2018"> 专栏 </a> / <a href="assets/QQ2群.png"> QQ </a>
### 排版
笔记内容按照 [中文文案排版指北](https://github.com/sparanoid/chinese-copywriting-guidelines) 进行排版以保证内容的可读性

View File

@ -22,27 +22,29 @@
[Leetcode](https://leetcode.com/problems/assign-cookies/description/) / [力扣](https://leetcode-cn.com/problems/assign-cookies/description/)
```html
Input: [1,2], [1,2,3]
Input: grid[1,3], size[1,2,4]
Output: 2
Explanation: You have 2 children and 3 cookies. The greed factors of 2 children are 1, 2.
You have 3 cookies and their sizes are big enough to gratify all of the children,
You need to output 2.
```
题目描述每个孩子都有一个满足度每个饼干都有一个大小只有饼干的大小大于等于一个孩子的满足度该孩子才会获得满足求解最多可以获得满足的孩子数量
题目描述每个孩子都有一个满足度 grid每个饼干都有一个大小 size只有饼干的大小大于等于一个孩子的满足度该孩子才会获得满足求解最多可以获得满足的孩子数量
给一个孩子的饼干应当尽量小又能满足该孩子这样大饼干就能拿来给满足度比较大的孩子因为最小的孩子最容易得到满足所以先满足最小的孩子
1. 给一个孩子的饼干应当尽量小并且又能满足该孩子这样大饼干才能拿来给满足度比较大的孩子
2. 因为满足度最小的孩子最容易得到满足所以先满足满足度最小的孩子
证明假设在某次选择中贪心策略选择给当前满足度最小的孩子分配第 m 个饼干 m 个饼干为可以满足该孩子的最小饼干假设存在一种最优策略给该孩子分配第 n 个饼干并且 m < n我们可以发现经过这一轮分配贪心策略分配后剩下的饼干一定有一个比最优策略来得大因此在后续的分配中贪心策略一定能满足更多的孩子也就是说不存在比贪心策略更优的策略即贪心策略就是最优策略
在以上的解法中我们只在每次分配时饼干时选择一种看起来是当前最优的分配方法但无法保证这种局部最优的分配方法最后能得到全局最优解我们假设能得到全局最优解并使用反证法进行证明即假设存在一种比我们使用的贪心策略更优的最优策略如果不存在这种最优策略表示贪心策略就是最优策略得到的解也就是全局最优解
证明假设在某次选择中贪心策略选择给当前满足度最小的孩子分配第 m 个饼干 m 个饼干为可以满足该孩子的最小饼干假设存在一种最优策略可以给该孩子分配第 n 个饼干并且 m < n我们可以发现经过这一轮分配贪心策略分配后剩下的饼干一定有一个比最优策略来得大因此在后续的分配中贪心策略一定能满足更多的孩子也就是说不存在比贪心策略更优的策略即贪心策略就是最优策略
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/6fb7cf89-71b3-48c1-bc6a-5110e1f1fc15.gif" width="600px"> </div><br>
```java
public int findContentChildren(int[] g, int[] s) {
Arrays.sort(g);
Arrays.sort(s);
public int findContentChildren(int[] grid, int[] size) {
if (grid == null || size == null) return 0;
Arrays.sort(grid);
Arrays.sort(size);
int gi = 0, si = 0;
while (gi < g.length && si < s.length) {
if (g[gi] <= s[si]) {
while (gi < grid.length && si < size.length) {
if (grid[gi] <= size[si]) {
gi++;
}
si++;

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

View File

@ -22,27 +22,29 @@
[Leetcode](https://leetcode.com/problems/assign-cookies/description/) / [力扣](https://leetcode-cn.com/problems/assign-cookies/description/)
```html
Input: [1,2], [1,2,3]
Input: grid[1,3], size[1,2,4]
Output: 2
Explanation: You have 2 children and 3 cookies. The greed factors of 2 children are 1, 2.
You have 3 cookies and their sizes are big enough to gratify all of the children,
You need to output 2.
```
题目描述每个孩子都有一个满足度每个饼干都有一个大小只有饼干的大小大于等于一个孩子的满足度该孩子才会获得满足求解最多可以获得满足的孩子数量
题目描述每个孩子都有一个满足度 grid每个饼干都有一个大小 size只有饼干的大小大于等于一个孩子的满足度该孩子才会获得满足求解最多可以获得满足的孩子数量
给一个孩子的饼干应当尽量小又能满足该孩子这样大饼干就能拿来给满足度比较大的孩子因为最小的孩子最容易得到满足所以先满足最小的孩子
1. 给一个孩子的饼干应当尽量小并且又能满足该孩子这样大饼干才能拿来给满足度比较大的孩子
2. 因为满足度最小的孩子最容易得到满足所以先满足满足度最小的孩子
证明假设在某次选择中贪心策略选择给当前满足度最小的孩子分配第 m 个饼干 m 个饼干为可以满足该孩子的最小饼干假设存在一种最优策略给该孩子分配第 n 个饼干并且 m < n我们可以发现经过这一轮分配贪心策略分配后剩下的饼干一定有一个比最优策略来得大因此在后续的分配中贪心策略一定能满足更多的孩子也就是说不存在比贪心策略更优的策略即贪心策略就是最优策略
在以上的解法中我们只在每次分配时饼干时选择一种看起来是当前最优的分配方法但无法保证这种局部最优的分配方法最后能得到全局最优解我们假设能得到全局最优解并使用反证法进行证明即假设存在一种比我们使用的贪心策略更优的最优策略如果不存在这种最优策略表示贪心策略就是最优策略得到的解也就是全局最优解
证明假设在某次选择中贪心策略选择给当前满足度最小的孩子分配第 m 个饼干 m 个饼干为可以满足该孩子的最小饼干假设存在一种最优策略可以给该孩子分配第 n 个饼干并且 m < n我们可以发现经过这一轮分配贪心策略分配后剩下的饼干一定有一个比最优策略来得大因此在后续的分配中贪心策略一定能满足更多的孩子也就是说不存在比贪心策略更优的策略即贪心策略就是最优策略
<div align="center"> <img src="pics/6fb7cf89-71b3-48c1-bc6a-5110e1f1fc15.gif" width="600px"> </div><br>
```java
public int findContentChildren(int[] g, int[] s) {
Arrays.sort(g);
Arrays.sort(s);
public int findContentChildren(int[] grid, int[] size) {
if (grid == null || size == null) return 0;
Arrays.sort(grid);
Arrays.sort(size);
int gi = 0, si = 0;
while (gi < g.length && si < s.length) {
if (g[gi] <= s[si]) {
while (gi < grid.length && si < size.length) {
if (grid[gi] <= size[si]) {
gi++;
}
si++;

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB