代码随想录算法训练营第31天| 455.分发饼干、376. 摆动序列、53. 最大子序和

  • 今日学习的文章链接,或者视频链接

第八章 贪心算法 part01

  • 自己看到题目的第一想法

  • 看完代码随想录之后的想法

455:

class Solution:
    def findContentChildren(self, g: List[int], s: List[int]) -> int:
        g.sort()
        s.sort()
        res = 0
        for i in range(len(s)):
            if res = g[res]:  #小饼干先喂饱小胃口
                res += 1
        return res

376:

class Solution:
    def wiggleMaxLength(self, nums: List[int]) -> int:
        preC,curC,res = 0,0,1  #题目里nums长度大于等于1,当长度为1时,其实到不了for循环里去,所以不用考虑nums长度
        for i in range(len(nums) - 1):
            curC = nums[i + 1] - nums[i]
            if (preC <= 0 and curC >0) or (preC >= 0 and curC < 0): 
                res += 1
                preC = curC  #如果当前差值和上一个差值为一正一负时,才需要用当前差值替代上一个差值
        return res

53:

class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
        result = -float('inf')
        count = 0
        for i in range(len(nums)):
            count += nums[i]
            if count > result:
                result = count
            if count <= 0:
                count = 0
        return result
  • 自己实现过程中遇到哪些困难

  • 今日收获,记录一下自己的学习时长

贪心重在理解

你可能感兴趣的:(贪心算法,leetcode,算法)