724.寻找数组的中心索引
class Solution:
def pivotIndex(self, nums: List[int]) -> int:
all_sum = sum(nums)
res = 0
for i in range(len(nums)):
if res*2 + nums[i] == all_sum:
return i
else:
res += nums[i]
return -1
303.区域和检索
class NumArray:
def __init__(self, nums: List[int]):
self.list = [0]
for i,n in enumerate(nums):
if i == 0:
self.list.append(nums[0])
else:
self.list.append(self.list[i]+n)
def sumRange(self, i: int, j: int) -> int:
return self.list[j+1]-self.list[i]
class Solution:
def maxProfit(self, prices: List[int]) -> int:
if len(prices)<2:
return 0
sell = 0 #sell和buy分别存储当前时刻为sell和buy的最大利润
buy = -prices[0]
pre_sell,pre_buy = 0, 0
for price in prices:
pre_buy = buy
buy = max(pre_sell-price,pre_buy)
pre_sell = sell
sell = max(pre_buy+price,pre_sell)
return sell