【剑指offer】滑动窗口的最大值
滑动窗口的最大值
https://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788?tpId=13&tqId=11217&rp=4&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
- 当传入的参数是const vector时,使用的迭代器应该也是const_iterator,否则不能把const的变量赋给非const的
- 使用max_element函数,里面只能是迭代器的范围,不能用数组下标,返回的也是最大值的迭代器,使用*可以获取值
- 如果想获取最大值的数组下标,可以用max返回的迭代器减去num.begin()即可
class Solution { public: vector<int> maxInWindows(const vector<int>& num, unsigned int size) { //双指针确定滑动窗口的范围 //temp保存当前窗口最大值 vector<int> res; if(num.empty() || size > num.size() || size == 0) return res; vector<int>:: const_iterator it = num.begin(); while(it + size <= num.end()){ int temp = * max_element(it, it + size); res.push_back(temp); it++; } return res; } };