# 代码随想录训练营第III期--034--python# 1005.K次取反后最大化的数组和 # 学习了一个很巧妙的想法,每次将最小的数字的符号转换了classSolution:deflargestSumAfterKNegations(self, nums: List[int], k:int)->int:
nums.sort()while k!=0:
nums[0]=-nums[0]
k -=1
nums.sort()returnsum(nums)# 134. 加油站classSolution:defcanCompleteCircuit(self, gas: List[int], cost: List[int])->int:
cs = ss = start =0for i inrange(len(gas)):
cs += gas[i]- cost[i]
ss += gas[i]- cost[i]if cs <0:
start = i +1
cs =0if ss <0:return-1return start
# 135. 分发糖果 defcandy(self,rating):
n =len(rating)
left =[0]* n
for i inrange(n):if i>0and rating[i]> rating[i-1]:
left[i]= left[i -1]+1else:
left[i]=1
right = ret =0for i inrange(n-1,-1,-1):if i<n-1and rating[i]> rating[i+1]:
right +=1else:
right =1
ret +=max(left[i], right)return ret