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

江苏林润建设工程有限公司网站开发一个非常简单的聊天软件

江苏林润建设工程有限公司网站,开发一个非常简单的聊天软件,wordpress 免费 主题 下载,微信官网电脑版下载给你一个整数数组 nums#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 输入#xff1a;nums [1,3,-1,-3,5,3,6,7], k 3 输出#xff1a;[3,3,5,… 给你一个整数数组 nums有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 输入nums [1,3,-1,-3,5,3,6,7], k 3 输出[3,3,5,5,6,7] 解释 滑动窗口的位置 最大值 --------------- ----- [1 3 -1] -3 5 3 6 7 31 [3 -1 -3] 5 3 6 7 31 3 [-1 -3 5] 3 6 7 51 3 -1 [-3 5 3] 6 7 51 3 -1 -3 [5 3 6] 7 61 3 -1 -3 5 [3 6 7] 7 如果你刚看见这道题你会怎么想三秒告诉我3...2...1...时间到 首先是滑动窗口一听到这个名字我们就应该立刻的想到双指针双指针这个大方向是错不了我们再看要每次取到范围内的最大值除了最大堆就是优先队列可以做到这件事接下来我们先用最大堆进行解题 最大堆就是其实就是一棵树通过上浮和下浮使得堆顶是最大值或者最小值Java中默认是最小堆所以我们如果是想每次取到范围内的最大值 PriorityQueueInteger queuenew PriorityQueue(new ComparatorInteger() {Overridepublic int compare(Integer o1, Integer o2) {return o2-o1;//最大值 默认是o1-o2}}); 需要对堆的比较器进行重写,构造一个最大堆 维护一个一个列表进行最大值的维护 ListInteger listnew ArrayList(); for(int right0;right nums.length;right){if(rightk-1){queue.offer(nums[right]);}else{queue.offer(nums[right]);list.add(queue.peek());queue.remove(nums[left]);}} 结果不出意外 怎么办时间超时了怎么办堆的上浮和下沉确实浪费了大量的时间所以我们使用另外一种数据结构解决本题优先队列 //维护一个单调队列class MaxQueue{private LinkedListInteger queuenew LinkedList();//添加public void push(int x){ //队列不为空队尾元素如果小于当家加入元素直接扔出去while(!queue.isEmpty()queue.getLast()x){queue.pollLast();}queue.addLast(x);}//删除public void pop(int x){if(xqueue.getFirst()){queue.pollFirst();}}//得到最大值public Integer getMax(){return queue.getFirst();}} 核心代码 int left0;for(int right0;right nums.length;right){if(rightk-1){window.push(nums[right]);}else{window.push(nums[right]);list.add(window.getMax());window.pop(nums[left]);}} 结果不出意外 上源代码 public int[] maxSlidingWindow(int[] nums, int k) {if(numsnull){return null;}MaxQueue windownew MaxQueue();ListInteger listnew ArrayList();int left0;for(int right0;right nums.length;right){if(rightk-1){window.push(nums[right]);}else{window.push(nums[right]);list.add(window.getMax());window.pop(nums[left]);}}return list.stream().mapToInt(Integer::valueOf).toArray();}//维护一个单调队列class MaxQueue{private LinkedListInteger queuenew LinkedList();//添加public void push(int x){while(!queue.isEmpty()queue.getLast()x){queue.pollLast();}queue.addLast(x);}//删除public void pop(int x){if(xqueue.getFirst()){queue.pollFirst();}}//得到最大值public Integer getMax(){return queue.getFirst();}}
http://www.pierceye.com/news/94944/

相关文章:

  • 网站开发选asp还是hph集约化网站群建设情况
  • 做网站域名重要吗10000ip网站怎么做
  • 途牛的旅游网站是谁做的wordpress 注册用户列表
  • 如何编辑网站新吁网站建设
  • 网站开发采集工具免费引流在线推广
  • 全面的锦州网站建设西安建筑工程有限公司
  • 做网站 郑州公司哪家好哪个购物网站最便宜
  • dedecms网站后台免费网页小游戏
  • 如何查网站外链wordpress火车头采集免费版
  • 四川住房建设和城乡建设厅新网站wordpress 采集 api
  • 企业所得税怎么交南昌seo实用技巧
  • 深圳英文网站开发企业网站和展板建设
  • 国内网站设计制作网页游戏传奇盛世开服表
  • 网站图片放大特效怎么做网站建设的后期服务要包括什么软件
  • 网站降权投诉商标注册证书电子版怎么查询
  • 济南网站制作公司哪家好网站建设搞笑广告词
  • 建设主管部门门户网站摄影网站源码 免费下载
  • js 曲线 网站营销型网站方案书
  • 如何盗取网站软件开发的自学教程
  • 傻瓜建站家庭网络搭建网站
  • 扬中做网站的公司静态网页生成器
  • 襄阳做公司网站的软件公司wordpress网站好做排名吗
  • 电商网站功能介绍太原市做网站公司
  • 网站开发融资计划网站响应式和电脑手机
  • 专做水果的网站天门市规划建设局网站
  • 网站百度地图生成器建设一个网站可以做什么
  • 用阳寿做交易的网站建盏公司简介
  • 机械加工网站哪个好服装设计专业有前途吗
  • 深圳 企业 网站建设哪家好没有域名的网站需要备案吗
  • 深圳返利网站建设扁平化 手机网站首页