● 1005.K次取反后最大化的数组和
class Solution:
def largestSumAfterKNegations(self, nums: List[int], k: int) -> int:
sums=0
i=0
while k>0:
nums.sort()
nums[i]=-nums[i]
k-=1
return sum(nums)
● 134. 加油站
class Solution:
def canCompleteCircuit(self, gas: List[int], cost: List[int]) -> int:
if sum(gas)<sum(cost):
return -1
n=len(gas)
start=0
total=0
for i in range(n):
total+=gas[i]-cost[i]
if total<0:
start=i+1
total=0
return start
● 135. 分发糖果
class Solution:
def candy(self, ratings: List[int]) -> int:
candSum=[1]*len(ratings)
for i in range(1,len(ratings)):
if ratings[i]>ratings[i-1]:
candSum[i]=candSum[i-1]+1
for i in range(len(ratings)-2,-1,-1):
if ratings[i]>ratings[i+1]:
candSum[i]=max(candSum[i+1]+1,candSum[i])
rest=sum(candSum)
return rest