当前位置: 首页 > news >正文

旅游公司网站设计/南京网络推广平台

旅游公司网站设计,南京网络推广平台,wordpress拉宽,郑州最好的男科医院有哪些13. 剑指 Offer 59-I. 滑动窗口的最大值 要求 给定一个数组 nums 和滑动窗口的大小 k&#xff0c;请找出所有滑动窗口里的最大值。 解题 C版本 #include <iostream> using namespace std; #include <vector> #include <deque>void printVector(vector&l…

13. 剑指 Offer 59-I. 滑动窗口的最大值

要求

给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。

解题

C++版本

#include <iostream>
using namespace std;
#include <vector>
#include <deque>void printVector(vector<int>& v)
{for (vector<int>::iterator it = v.begin(); it != v.end(); it++){cout << *it << " ";}cout << endl;
}class Solution {
public:vector<int> maxSlidingWindow(vector<int>& nums, int k) {deque<int> dq;vector<int> ans;for (int i = 0; i < nums.size(); i++) {if (dq.size() && dq.front() <= i - k)  // 删除 deque 中队头dq.pop_front();while (dq.size() && nums[dq.back()] <= nums[i])  // 移除小于当前要加入元素的值的索引dq.pop_back();dq.push_back(i);  // 加入当前索引if (i >= k -1)ans.push_back(nums[dq.front()]); // 记录窗口最大值}return ans;}
};void test01()
{Solution solution;vector<int> nums;nums.push_back(1);nums.push_back(3);nums.push_back(-1);nums.push_back(-3);nums.push_back(5);nums.push_back(3);nums.push_back(6);nums.push_back(7);int k = 3;vector<int> ans;ans = solution.maxSlidingWindow(nums, k);printVector(ans);
}int main()
{test01();system("pause");return 0;
}

在这里插入图片描述

Python版本

import collectionsclass Solution:def maxSlidingWindow(self, nums, k):deque = collections.deque()res = []for i in range(len(nums)):if deque and deque[0] <= i - k:   # 删除 deque 中队头deque.popleft()while deque and nums[deque[-1]] < nums[i]:  # 移除小于当前要加入元素的值的索引deque.pop()deque.append(i)             #  加入当前索引if i >= k-1:res.append(nums[deque[0]])              # 记录窗口最大值return resdef test01():solution = Solution()nums = [1,3,-1,-3,5,3,6,7]k = 3res = solution.maxSlidingWindow(nums,k)print(res)if __name__=="__main__":test01()

在这里插入图片描述

Java版本

package com.hailei_01;import java.util.ArrayList;
import java.util.Deque;
import java.util.LinkedList;public class maxSlidingWindow {public static void main(String[] args) {int[] nums = {1,3,-1,-3,5,3,6,7};int k = 3;System.out.println(maxSlidingWindow(nums,k));}public static ArrayList<Integer> maxSlidingWindow(int[] nums, int k){Deque<Integer> deque = new LinkedList<>();ArrayList<Integer> res = new ArrayList<>();for (int i=0; i<nums.length;i++) {if(!deque.isEmpty() && deque.peekFirst() <=  i-k)deque.removeFirst();while(!deque.isEmpty() && nums[deque.peekLast()] <= nums[i])deque.removeLast();deque.addLast(i);if(i>=k-1)res.add(nums[deque.peekFirst()]);}return res;}
}

在这里插入图片描述

希望本文对大家有帮助,上文若有不妥之处,欢迎指正

分享决定高度,学习拉开差距

http://www.jmfq.cn/news/5041315.html

相关文章:

  • 如何拿模板做网站/如何让百度快速收录网站文章
  • 做暖暖视频网站观看/青岛网站seo服务
  • 做网站优化的/西安排名seo公司
  • 做电影网站需要哪些证/关键词优化公司推荐
  • 做ps彩图什么网站好/关键词搜索神器
  • 建站加盟/国际财经新闻
  • 小公司做网站还是微博/百度seo规则最新
  • 在线做网站视频在线观看/google搜索中文入口
  • 做二手房的网站技巧/哈尔滨网络推广
  • 临沂网站制作公司哪家好/成都网站建设
  • 网站开发藏汉双语/怎样做一个网站平台
  • 把收藏夹网站设置成主业怎么做/南宁seo教程
  • 精品网站建设多少钱/百度seo sem
  • 五百亿网站建设/交换链接的例子
  • 物流网站给做软件/百度手机提高关键词排名
  • 运城网站建设报价/新闻头条今天最新消息
  • 做网站的每天打电话咋办/怎么提高seo关键词排名
  • 做网站公司-汉狮网络/怎么快速排名
  • 做装修的网站/百度搜索百度
  • 绥化市网站建设/合肥最新消息今天
  • 创建一个企业网站流程的步骤/香水推广软文
  • 创建有限公司/win7优化大师下载
  • 中文网站做google广告怎么样/百度竞价ocpc投放策略
  • wordpress wpdb insert/班级优化大师怎么用
  • 厦门做网站哪家公司好/河北网站seo
  • 药企做网站/优化关键词的步骤
  • 建设网站的岗位/推广网站怎么制作
  • 哪个网站做黄金交易最好/微信营销系统
  • 怎样登网站/营销型网站建设推荐
  • 一个域名可以做中英文两个网站吗/seo网站推广费用