**简介:**
本文介绍了两道经典算法题的解法与思路。第一题“滑动窗口最大值”通过单调队列实现高效求解,避免了暴力方法的时间复杂度问题,利用双端队列维护窗口内的最大值。第二题“前 K 个高频元素”则结合哈希表统计频率与优先级队列(小顶堆)进行排序,筛选出频率最高的元素。两者均展示了数据结构在优化算法性能中的重要作用,适合学习滑动窗口与堆排序相关知识的开发者参考。
**1005**:通过选择性地将数组元素取反 K 次,使数组和最大化。核心思想是优先将绝对值最大的负数变为正数,若 K 剩余,则对最小的正数反复取反以保持数组和最大。
- **134**:解决环形路径上的加油站问题,判断是否能绕一圈并找到起点。关键在于分析剩余油量的变化趋势,若总油量不足则无法完成,否则从能使最低油量非负的位置出发即可。
- **135**:根据评分分发糖果,确保评分高的孩子获得更多糖果。采用两次遍历策略,先保证右边评分高的孩子获得更多糖果,再调整左边的关系,最终实现全局最优分配。