1005.K次取反后最大化的数组和
按绝对值降序排序,因为要优先把大的负数变成正的,然后就开始刚刚说的从左往右把所有的数都变成正的。
如果到了最后一位发现还有一些剩余,根据 k % 2判断最后一位是否为正,这是关键一步
134. 加油站
思路是划分 segment,如果答案唯一的话那么就有两点需要考虑,当前这条路可否走以及是否能绕一圈。 两个关键点均可通过一趟遍历完成并且均通过油箱正收益来考虑
- 一圈
一趟便利看收益是否不小于0
- start from index-i
看当前累计的收益是否为负,为负则从下一个 index 开始,因为一段 segment 为负的必然需要一段 segment 为正的来抵消,只需要找一段 segment 为正的路段即可,剩下的全路径验证“一圈”已经搞定了
135. 分发糖果
有点不太好想,毕竟 hard... 思路是先跟左边比,然后跟右边比,最后取最大值