1.LeetCode 122 买卖股票的最佳时机 II
题目链接:122. 买卖股票的最佳时机 II
class Solution:
def maxProfit(self, prices: List[int]) -> int:
result = 0
for i in range(1, len(prices)):
result += max(prices[i] - prices[i - 1], 0)
return result
第一题结束
2.LeetCode 55 跳跃游戏
题目链接:55. 跳跃游戏
class Solution:
def canJump(self, nums: List[int]) -> bool:
cover = 0
if len(nums) == 1:
return True
for i in range(len(nums)):
if i <= cover:
cover = max(i + nums[i], cover)
if cover >= len(nums) - 1:
return True
return False
第二题结束
3.LeetCode 45 跳跃游戏 II
题目链接:45. 跳跃游戏 II
class Solution:
def jump(self, nums: List[int]) -> int:
if len(nums) == 1:
return 0
count = 0
i = 0
cover = 0
while i <= cover:
for i in range(i, cover + 1):
cover = max(i + nums[i], cover)
if cover >= len(nums) - 1:
return count + 1
count += 1
第三题结束
4.LeetCode 1005 K次取反后最大化的数组和
题目链接:1005. K 次取反后最大化的数组和
class Solution:
def largestSumAfterKNegations(self, nums: List[int], k: int) -> int:
nums.sort(key=lambda x: abs(x), reverse=True)
for i in range(len(nums)):
if nums[i] < 0 and k > 0:
nums[i] *= -1
k -= 1
if k % 2 == 1:
num[-1] *= -1
return sum(nums)
第四题结束
今天用时1.5h,贪心有点难