贪心的真谛是从局部最优推出整体最优
leetcode455 分发饼干
class Solution:
def findContentChildren(self, g: List[int], s: List[int]) -> int:
g.sort()
s.sort()
index = len(s) - 1
result = 0
for i in range(len(g) - 1, -1, -1):
if index >= 0 and s[index] >= g[i]:
index -= 1
result += 1
return result
leetcode 376 摆动序列
class Solution:
def wiggleMaxLength(self, nums: List[int]) -> int:
if len(nums) <= 1:
return len(nums)
curDiff, preDiff, result = 0, 0, 1
for i in range(len(nums)-1):
curDiff = nums[i + 1] - nums[i]
if curDiff * preDiff <= 0 and curDiff != 0:
result += 1
preDiff = curDiff
return result
leetcode 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
309

被折叠的 条评论
为什么被折叠?



