leetcode 455. 分发饼干 思考分析
生活随笔
收集整理的這篇文章主要介紹了
leetcode 455. 分发饼干 思考分析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 題目
- 自己的思路以及AC代碼
- 參考思路
題目
假設你是一位很棒的家長,想要給你的孩子們一些小餅干。但是,每個孩子最多只能給一塊餅干。
對每個孩子 i,都有一個胃口值 g[i],這是能讓孩子們滿足胃口的餅干的最小尺寸;并且每塊餅干 j,都有一個尺寸 s[j] 。如果 s[j] >= g[i],我們可以將這個餅干 j 分配給孩子 i ,這個孩子會得到滿足。你的目標是盡可能滿足越多數量的孩子,并輸出這個最大數值。
提示:
自己的思路以及AC代碼
首先將數組s、g排序(按照值從小到大),這樣就將小胃口孩子,小尺寸的餅干放在前面了。
接下來對餅干進行遍歷:
如果這個餅干大于當前的孩子胃口,把它給這個孩子,轉向下一個孩子,餅干也到下一個餅干。
如果不滿足,孩子還是當前的孩子,餅干轉到下一個餅干。
這樣就能保證每個孩子吃到的是滿足胃口的最小的尺寸餅干了。我想這也許就是貪心吧。
下面是AC代碼:
接下來看看我參考的公眾號的思路:
參考思路
大尺寸的餅干既可以滿足胃口大的孩子也可以滿足胃口小的孩子,那么就應該優先滿足胃口大的。
局部最優:大餅干喂給胃口大的,充分利用餅干尺寸喂飽一個。
全局最優就是喂飽盡可能多的小孩。
從后向前遍歷小孩數組,用大餅干優先滿足胃口大的,并統計小孩數量。
這個思路正好和我是反過來的。
從代碼實現上來說,我的外才能循環是餅干尺寸s,而這里的代碼外層循環是胃口g。
總結
以上是生活随笔為你收集整理的leetcode 455. 分发饼干 思考分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 颐和园警官证免票吗
- 下一篇: “君平因世闲”下一句是什么