c++

滑动窗口的最大值

http://www.nowcoder.com/questionTerminal/1624bc35a45c42c0bc17d17fa0cba788

class Solution {
public:
    vector<int> maxInWindows(const vector<int>& num, unsigned int size)
    {
        vector<int> result;
        if (size == 0 || num.size() == 0 || num.size() < size) return result;
        map<int, int> winMap;
        for (size_t i = 0; i < num.size(); ++ i) {
            if (i <= size-1) {
                winMap[num[i]] ++;
            } else {
                winMap[num[i-size]] --;
                if (winMap[num[i-size]] == 0) {
                    winMap.erase(num[i-size]);
                }
                winMap[num[i]] ++;
            }
            if (i>=size-1) result.push_back(winMap.rbegin()->first);
        }
        return result;
    }
};
全部评论

相关推荐

02-28 01:18
已编辑
南昌大学 后端工程师
黑皮白袜臭脚体育生:把开源经历放个人项目上边应该更好,就像大部分人都把实习经历放个人项目上边
点赞 评论 收藏
分享
03-19 09:58
河海大学 Java
最喜欢春天的奇亚籽很...:同学,是小红书不是小哄书,一眼就能看到的错误
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务