
看示例就能发现他的计算规律如果第二天比第一天鬼就卖否贼就不卖,然后差值相加,别被第二个示例影响到,你可以想成
2-1+3-2+4-3+5-4=4也是一样的class Solution:
def maxProfit(self, prices: List[int]) -> int:
money = 0
for a in range(1,len(prices)):
if prices[a] > prices[a-1]:
money += (prices[a] - prices[a-1])
return money0 和1。这题遇到问题是没法计数,我是通过把计数单独定义一个次数,从左往右开始每碰到一个1计数加1,后续每了就把计数总和导入一个列表并且把计数归零接着计数,以及最后计数完了再把计数导入下列表,这里取最大值多导入几个0没有什么影响,少导入就有问题了class Solution:
def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
count = 0
count_list = []
for a in nums:
if a == 1:
count += 1
else:
count_list.append(count)
count = 0
count_list.append(count)
return max(count_list)0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。
示例 1:
输入: [3,0,1] 输出: 2
示例 2:
输入: [9,6,4,2,3,5,7,0,1] 输出: 8这题最大问题是运行时间,要简化算法,那就干脆换个思路不能死板的按照他说的来,如果一个值没有在里面那这个N序列的总和减去列表总和就是我们要的那个值class Solution:
def missingNumber(self, nums: List[int]) -> int:
nums_sum = 0
for a in range(len(nums)+1):
nums_sum += a
return nums_sum-sum(nums)有更加好的思路,或者解题方法评论区留言谢谢