【代码随想录|贪心算法 455. 分发饼干 376. 摆动序列 53. 最大子数组和】

avatar
作者
猴君
阅读量:0

代码随想录|贪心算法 455. 分发饼干


python

一、455. 分发饼干

455. 分发饼干

1.代码

代码如下(示例):

class Solution:     def findContentChildren(self,g,s):         g.sort()         s.sort()         result=0         index=len(s)-1         for i in range(len(g)-1,-1,-1):             if index >=0 and g[i]<=s[index]:                 result=result+1                 index=index-1         return result   if __name__=="__main__":     g=list(map(int,input().strip().split(",")))     s=list(map(int,input().strip().split(",")))     solution=Solution()     result=solution.findContentChildren(g,s)     print(result) 

2.问题

没return结果
没排序
经典str转列表输入,list map int strip split

二、376. 摆动序列

376. 摆动序列

1.代码

代码如下(示例):

class Solution:     def wiggleMaxLength(self,nums):         if len(nums)<=1:             return  len(nums)         up=down=1 #记录上升和下降摆动序列的最大长度         for i in range(1,len(nums)):             if nums[i] > nums[i-1]:                 up=down+1             elif nums[i]<nums[i-1]:                 down=up+1         return max(up,down)  if __name__=="__main__":     nums=list(map(int,input().strip().split(',')))     solution=Solution()     result=solution.wiggleMaxLength(nums)     print(result) 

代码随想录上分析了一堆特殊情况,结果发现优化的代码用一个max就解决了,不想着删除,而是直接计算最少的一对波峰波谷

三、53. 最大子数组和

53. 最大子数组和

1.代码

代码如下(示例):

class Solution:     def maxSubArray(self,nums):         result=float('-inf')         count=0         for i in range(0,len(nums)):             count +=nums[i]             if count> result:                 result = count             if cunt<=0:                 count=0         return result  if __name__=="__main__":     nums=list(map(int, input().strip().split(",")))     solution=Solution()     result=solution.maxSubArray(nums)     print(result) 

这题的思路我自己想的差不多,但是测试都一部分负数集不通过,最后的问题是result的初始化我不应该设置为0,应该设置未负无穷

总结

输入输出

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!