生活随笔
收集整理的這篇文章主要介紹了
LeetCode 445 分发饼干
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述
假設(shè)你是一位很棒的家長(zhǎng),想要給你的孩子們一些小餅干。但是,每個(gè)孩子最多只能給一塊
餅干。對(duì)每個(gè)孩子 i,都有一個(gè)胃口值 g[i],這是能讓孩子們滿足胃口的餅干的最小尺寸;并且每塊
餅干 j,都有一個(gè)尺寸 s[j] 。如果 s[j] >= g[i],我們可以將這個(gè)餅干 j 分配給孩子 i ,這個(gè)孩子
會(huì)得到滿足。你的目標(biāo)是盡可能滿足越多數(shù)量的孩子,并輸出這個(gè)最大數(shù)值。
題解
使用貪心的策略,每次先用小餅干滿足胃口小的孩子。
代碼
class Solution {
public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(),g.end()); // 排序sort(s.begin(),s.end());int cnt=0; // 滿足的孩子數(shù)量for (int i=0,j=0;i<g.size()&&j<s.size();j++){if (g[i]<=s[j]){cnt++; // 數(shù)量加一i++; // 分配給下一個(gè)孩子}}return cnt;}
};
說(shuō)明:首先對(duì)兩個(gè)數(shù)組進(jìn)行排序,注意這里每次循環(huán)時(shí)什么時(shí)候i++,什么時(shí)候j++,由于i表
示孩子的胃口值,本題中應(yīng)該優(yōu)先滿足胃口值小的孩子,假設(shè)滿足的最大的個(gè)數(shù)是cnt,那么
一定是排序之后的前cnt個(gè),所以只有當(dāng)當(dāng)前餅干夠滿足時(shí)才會(huì)i++,當(dāng)前餅干j如果夠滿足孩子
i,則j++,如果不夠則看下一個(gè)餅干夠不夠,所以j在每次循壞時(shí)均要++。
總結(jié)
以上是生活随笔為你收集整理的LeetCode 445 分发饼干的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。