題目描述:
假設你是一位很棒的家長,想要給你的孩子們一些小餅乾。但是,每個孩子最多只能給一塊餅乾。對每個孩子 i ,都有乙個胃口值 gi ,這是能讓孩子們滿足胃口的餅乾的最小尺寸;並且每塊餅乾 j ,都有乙個尺寸 sj 。如果 sj >= gi ,我們可以將這個餅乾 j 分配給孩子 i ,這個孩子會得到滿足。你的目標是盡可能滿足越多數量的孩子,並輸出這個最大數值。
注意:
你可以假設胃口值為正。
乙個小朋友最多只能擁有一塊餅乾。
示例 1:
輸入: [1,2,3], [1,1]
輸出: 1
解釋:
你有三個孩子和兩塊小餅乾,3個孩子的胃口值分別是:1,2,3。
雖然你有兩塊小餅乾,由於他們的尺寸都是1,你只能讓胃口值是1的孩子滿足。
所以你應該輸出1。
示例 2:
輸入: [1,2], [1,2,3]
輸出: 2
解釋:
你有兩個孩子和三塊小餅乾,2個孩子的胃口值分別是1,2。
你擁有的餅乾數量和尺寸都足以讓所有孩子滿足。
所以你應該輸出2.
思路1.最多能滿足的孩子數是餅乾的總數,因此要好好利用每塊餅乾,怎麼樣叫好好利用呢?將餅乾分配給胃口小於它的尺寸的孩子中,胃口最大的孩子。複雜度c**如下:
int findcontentchildren(int* g, int gsize, int* s, int ssize) ;
int flag = 0;
for (int i = 0; i < ssize; i++)
} if (flag == 1)
} return ans;
}
思路2:優先滿足胃口小的孩子可能使得能滿足的孩子數最多,滿足胃口小的孩子時用小的餅乾滿足。複雜度
int cmp(const void * a, const void * b)
int findcontentchildren(int* g, int gsize, int* s, int ssize)
return child;
}
leetcode455 分發餅乾 貪心
假設你是一位很棒的家長,想要給你的孩子們一些小餅乾。但是,每個孩子最多只能給一塊餅乾。對每個孩子 i,都有乙個胃口值 g i 這是能讓孩子們滿足胃口的餅乾的最小尺寸 並且每塊餅乾 j,都有乙個尺寸 s j 如果 s j g i 我們可以將這個餅乾 j 分配給孩子 i 這個孩子會得到滿足。你的目標是盡...
LeetCode 455 分發餅乾 貪心
ps 本題目摘自 leetcode 455 原題 分發餅乾,一道貪心演算法問題 題目描述 假設你是一位家長,想要給你的孩子們一些餅乾,每個孩子最多只能給一塊餅乾。對每個孩子 i 都有乙個胃口值 gi 這是能讓孩子們滿足胃口的餅乾的最小尺寸 對每塊餅乾 j 都有乙個尺寸 sj 如果 sj gi 則可以...
leetcode 455 分發餅乾 貪心
貪心演算法 又稱貪婪演算法 是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的區域性最優解。貪心演算法不是對所有問題都能得到整體最優解,關鍵是貪心策略的選擇,選擇的貪心策略必須具備無後效性,即某個狀態以前的過程不會影響以後的狀態,只與當...