题目考察的知识点是:

本题主要考察的知识点是队列。

题目解答方法的文字分析:

这个问题要求我们在连续的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;
    }
};