K次取反后最大化的数组和
python
for num in nums:
if k == 0:
break
if num < 0:
num = -num
k -= 1
这种直接遍历元素的赋值的话不改变数组里面的数!
得写成下面这个样子
python
for i in range(len(nums)):
if k == 0:
break
if nums[i] < 0:
nums[i] = -nums[i]
k -= 1
pythonA.sort(key=lambda x: abs(x), reverse=True) # 第一步:按照绝对值降序排序数组A
这个按绝对值排序的没见过,学一下
加油站
暴力法
如何控制起点?That is brilliant
python
rest > 0 && index != i
index = (index + 1) % len(gas)
贪心法
贪心算法完全想不到啊
python
class Solution:
def canCompleteCircuit(self, gas: List[int], cost: List[int]) -> int:
if sum(gas) < sum(cost):
return -1
curSum = 0
start = 0
for i in range(len(cost)):
curSum += gas[i] - cost[i]
if curSum < 0:
start = i + 1
curSum = 0
return start
Candy
要一边一边地比
不要同时比较两边
maya还要改变遍历顺序这谁能想得到