题解 | #最小活动范围#
最小活动范围
https://www.nowcoder.com/practice/f5e7c034bb5046089ce774e37e5342d9
题目考察的知识点是:
本题主要考察的知识点是队列。
题目解答方法的文字分析:
这个问题要求我们在连续的k个小时内,找出牛的最小活动范围。我们可以使用双端队列来解决这个问题,队列中存放的是活动范围元素的索引,同时保持队列中的元素单调递增。
本题解析所用的编程语言:
java语言。
完整且正确的编程代码:
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector * @param k int整型 * @return int整型vector */ vector<int> minSlidingWindow(vector<int>& nums, int k) { // write code here deque<int> q; vector<int> res; for (int i = 0; i < nums.size(); ++i) { if (!q.empty() && q.front() == i - k) { q.pop_front(); } while (!q.empty() && nums[q.back()] > nums[i]) { q.pop_back(); } q.push_back(i); if (i >= k - 1) { res.push_back(nums[q.front()]); } } return res; } };#题解#