本文主要是介绍Day34 贪心算法part03,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
K次取反后最大化的数组和
for num in nums:if k == 0:breakif num < 0:num = -numk -= 1
这种直接遍历元素的赋值的话不改变数组里面的数!
得写成下面这个样子
for i in range(len(nums)):if k == 0:breakif nums[i] < 0:nums[i] = -nums[i]k -= 1
A.sort(key=lambda x: abs(x), reverse=True) # 第一步:按照绝对值降序排序数组A
这个按绝对值排序的没见过,学一下
加油站
暴力法
如何控制起点?That is brilliant
rest > 0 && index != iindex = (index + 1) % len(gas)
贪心法
贪心算法完全想不到啊
class Solution:def canCompleteCircuit(self, gas: List[int], cost: List[int]) -> int:if sum(gas) < sum(cost):return -1curSum = 0start = 0for i in range(len(cost)):curSum += gas[i] - cost[i]if curSum < 0:start = i + 1curSum = 0return start
Candy
要一边一边地比
不要同时比较两边
maya还要改变遍历顺序这谁能想得到
这篇关于Day34 贪心算法part03的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!