代码随想录|贪心算法 455. 分发饼干
- 一、455. 分发饼干
- 1.代码
- 2.问题
- 二、376. 摆动序列
- 1.代码
- 三、53. 最大子数组和
- 1.代码
- 总结
python
一、455. 分发饼干
455. 分发饼干
1.代码
代码如下(示例):
class Solution:def findContentChildren(self,g,s):g.sort()s.sort()result=0index=len(s)-1for i in range(len(g)-1,-1,-1):if index >=0 and g[i]<=s[index]:result=result+1index=index-1return resultif __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+1elif nums[i]<nums[i-1]:down=up+1return 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=0for i in range(0,len(nums)):count +=nums[i]if count> result:result = countif cunt<=0:count=0return resultif __name__=="__main__":nums=list(map(int, input().strip().split(",")))solution=Solution()result=solution.maxSubArray(nums)print(result)
这题的思路我自己想的差不多,但是测试都一部分负数集不通过,最后的问题是result的初始化我不应该设置为0,应该设置未负无穷
总结
输入输出