本文主要是介绍代码随想录算法训练营第三十三天|1005.K次取反后最大化的数组和,134. 加油站,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1005.K次取反后最大化的数组和
1.取反次数<负数个数
优先把绝对值较大的负数取反
2.取反个数>负数个数
先把所有负数都取反成正数,之后把所有次数都用来对绝对值最小的数字进行取反
134. 加油站
这里首先每一个站台都是有净收益的,净收益等于该站台所提供的油量-到该站台所消耗的油量。
我们遍历每个站台的净收益,用sum记录遍历的站台净收益之和
如果到第i个站台净收益小于0了,那么这个站台(和与这个站台同时纳入sum计算的之前的站台)都不能作为起点,只能从第i+1个站台进行考虑
135. 分发糖果
这题主要是从两个情况分别考虑,不要试图只用一次循环遍历完成
1.正向遍历,当第i+1大于i时,i+1处的糖果数量比i多1;
2.反向遍历,当第i大于第i+1时,i处的糖果比i+1多1;
同时考虑两种遍历的糖果情况,取最大值就行
这篇关于代码随想录算法训练营第三十三天|1005.K次取反后最大化的数组和,134. 加油站的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!