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

主题:贪心算法

455.分发饼干

代码随想录代码随想录PDF,代码随想录网站,代码随想录百度网盘,代码随想录知识星球,代码随想录八股文PDF,代码随想录刷题路线,代码随想录知识星球八股文icon-default.png?t=N7T8https://programmercarl.com/0455.%E5%88%86%E5%8F%91%E9%A5%BC%E5%B9%B2.html

# s和g均需check指针位置
class Solution:
    def findContentChildren(self, g: List[int], s: List[int]) -> int:
        g.sort()
        s.sort()
        child = 0
        cookie = 0

        while cookie < len(s) and child < len(g):
            if s[cookie] >= g[child]:
                child += 1
            cookie += 1
        return child

376. 摆动序列

代码随想录代码随想录PDF,代码随想录网站,代码随想录百度网盘,代码随想录知识星球,代码随想录八股文PDF,代码随想录刷题路线,代码随想录知识星球八股文icon-default.png?t=N7T8https://programmercarl.com/0376.%E6%91%86%E5%8A%A8%E5%BA%8F%E5%88%97.html

class Solution:
    def wiggleMaxLength(self, nums: List[int]) -> int:
        sub = []
        count = 1

        if len(nums) == 1 :
            return count

        for i in range(1, len(nums)):
            if nums[i]- nums[i - 1] != 0:
                sub.append(nums[i]- nums[i - 1])
        
        if not sub:  #if all the elements in nums are the same
            return count

        for i in range(1, len(sub)):
            if sub[i] * sub[i-1] < 0:
                count += 1    

        count += 1

        return count   

53. 最大子序和

代码随想录代码随想录PDF,代码随想录网站,代码随想录百度网盘,代码随想录知识星球,代码随想录八股文PDF,代码随想录刷题路线,代码随想录知识星球八股文icon-default.png?t=N7T8https://programmercarl.com/0053.%E6%9C%80%E5%A4%A7%E5%AD%90%E5%BA%8F%E5%92%8C.html

class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
        curSum = 0
        maxSum = nums[0]

        for i in nums:
            curSum += i

            if curSum > maxSum:
                maxSum = curSum  #可以直接 maxSum = max(maxSum, curSum)
            
            if curSum < 0 : # 也可以在for loop 最开始
                curSum = 0
                
        return maxSum
        
        

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值