贪心算法
什么是贪心算法
- 贪心的本质是选择每一阶段的局部最优,从而达到全局最优
我们举个例子,方便理解:
假设这里有十张钞票,你从中拿走五张,如果想拿到的钱数额最大,再怎么拿?
我们每次都拿最大面额的钞票,这就是局部最优;
最后我们拿到的钞票数额就是最大的,这就是全局最优;
由局部最优推出全局最优。
就这就贪心算法最基本的思想
贪心没有套路
很多同学想问,做题想不出是贪心算法,有没有什么办法或者套路,一眼就看出了要是用贪心算法。
抱歉,没有
就比如上述例题,其实我们不需要知道这种拿法是贪心算法我们都能想到,这算是一种常识思维了
一般数学证明有两种办法:
- 数学归纳法
- 反证法
说实话在我看来,你了解了也没什么意义,一大串公式,你都不一定能看懂,我们也不是专业的,会用就行
面试的时候就更不可能让你证明贪心算法了,最多写个代码跑一跑,证明你了解贪心算法,大多数就让你说一说即可,因为贪心算法简单题真简单,难题是真难,面试你又不是难为你。
不过我们算法中会用到一些简单的初等数学思维,甚至连初等都算不上,就比如环形链表II这道题我们就用到了简单的数学逻辑思维,你