貪心算法
一、什么是貪心?
? 貪心就是 局部最優(yōu)最后達(dá)到全局最優(yōu)

【例子】:一堆鈔票,可以拿走10張。我想拿最多的錢,怎么拿?
? ?每一次都拿面額最大的,最后我就拿走最多的錢了。
? 1.1 換成貪心的說法:
? ? ?? ?每一次都拿局部最優(yōu)的,最后我就拿走全局最優(yōu)了。

二、例題
? ? ? ? Leetcode 455 easy

2.1:題目拆解:
? ?有4個參數(shù)


2.2 我的思路:
? ? ?通過排序,把大尺寸的喂給胃口大的,最后達(dá)到足夠多的人滿足。
2.3題解思路:
? ? 首先滿足胃口大的孩子。把大尺寸的餅干交給胃口大的孩子。然后后面就是喂飽其他孩子,這樣最后達(dá)到 有足夠多的滿足孩子
2.4代碼實(shí)現(xiàn)
? ? ? ? 2.4.1Goals
? ? ? ? ? ? ? ?1 . 對兩個數(shù)組進(jìn)行排序。
? ? ? ? ? ? ?利用sort 函數(shù)來實(shí)現(xiàn)從小到大排序。
? ? ? ? ? ? ? ?2.選出最大尺寸和胃口。
? ? ? ? ? ? ? ? ? ?利用兩個size()-1這就減小了使用兩次for變成使用一次


技術(shù)總結(jié):?
? ? ? ?? ? 1. ? ?這道題目考察的是貪心算法,就是先把大胃口的先拿走,剩下的依次滿足就可以了。
? ? ? ? ? ? ? 2.看到兩個數(shù)組,我之前想到兩個for循環(huán)來比較。其實(shí)用兩個長度存放,可以來操作數(shù)組進(jìn)行比較了。
? ? ? ? ? ? 3.可以想成怎么裝更多的東西,那可不就是把最大的裝了。

Leetcod
標(biāo)簽: