小记录34

71 阅读1分钟

1005.K次取反后最大化的数组和

按绝对值降序排序,因为要优先把大的负数变成正的,然后就开始刚刚说的从左往右把所有的数都变成正的。

如果到了最后一位发现还有一些剩余,根据 k % 2判断最后一位是否为正,这是关键一步

134. 加油站

思路是划分 segment,如果答案唯一的话那么就有两点需要考虑,当前这条路可否走以及是否能绕一圈。 两个关键点均可通过一趟遍历完成并且均通过油箱正收益来考虑

  • 一圈

一趟便利看收益是否不小于0

  • start from index-i

看当前累计的收益是否为负,为负则从下一个 index 开始,因为一段 segment 为负的必然需要一段 segment 为正的来抵消,只需要找一段 segment 为正的路段即可,剩下的全路径验证“一圈”已经搞定了

135. 分发糖果

有点不太好想,毕竟 hard... 思路是先跟左边比,然后跟右边比,最后取最大值