题解 | #最小活动范围#
最小活动范围
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;
}
};
#题解#
查看22道真题和解析
