小工具知识网

当前位置: 首页 > 行业知识 > 算法D31 | 贪心算法1 | 455.分发饼干 376. 摆动序列 53. 最大子序和

行业知识

算法D31 | 贪心算法1 | 455.分发饼干 376. 摆动序列 53. 最大子序和

2026-11-03 17:33:52 来源:互联网转载

贪心���法其实就是没有什么规律可言,所以大家了解贪心算法 就了解它没有规律的本质就够了。 

()

不用花心思去研究其规律, 没有思路就立刻看题解。

基本贪心的题目 有两个极端,要不就是特简单,要不就是***活想不出来。  

()

学完贪心之后再去看动态规划,就会了解贪心和动规的区别。

理论基础 

代码随想录

455.分发饼干  

代码随想录

两个数组先排序,倒着看最大的cookie能满足的孩子,向前计数。

Python:

class Solution:    def findContentChildren(self, g: List[int], s: List[int]) -> int:        g.sort()        s.sort()        i = len(g)-1        j = len(s)-1        result = 0        while j>=0 and i>=0:            if s[j]>=g[i]:                result += 1                j -= 1            i -= 1        return result

C++:

C++版本用i--实现也算简洁。

class Solution {public:    int findContentChildren(vector& g, vector& s) {        sort(g.begin(), g.end());        sort(s.begin(), s.end());        int result=0;        int i = g.size()-1;        int j = s.size()-1;        for (int i=g.size()-1; i>=0; i--) {            if (j>=0 && s[j]>=g[i]) {                result++;                j--;            }        }        return result;    }};

376. 摆动序列  

代码随想录

局部最优:删除单调坡度上的节点(不包括单调坡度两端的节点),那么这个坡度就可以有两个局部峰值。

主要难点:要考虑平坡的情况。

Python:

class Solution:    def wiggleMaxLength(self, nums: List[int]) -> int:        n = len(nums)        if n

上一篇:怎么开域名泛解析?

下一篇:轻松下载Saratch,详细步骤教程助你轻松搞定!