栈和队列之生成窗口最大值数组

举报
chenyu 发表于 2021/07/27 01:17:49 2021/07/27
【摘要】 package com.chenyu.zuo.stackAndQueue; import java.util.LinkedList; /** * 题目:有一个整形数组,arr和一个大小为w的窗口从数组的最左边滑到最右边,窗口每次向右滑动一个位置。 * 例如数组[4,3,5,4,3,3,6,7],窗口的大小为3时; * [4 3 5] 4 3 3 6 7 窗口中最大值为5 * ...

  
  1. package com.chenyu.zuo.stackAndQueue;
  2. import java.util.LinkedList;
  3. /**
  4. * 题目:有一个整形数组,arr和一个大小为w的窗口从数组的最左边滑到最右边,窗口每次向右滑动一个位置。
  5. * 例如数组[4,3,5,4,3,3,6,7],窗口的大小为3时;
  6. * [4 3 5] 4 3 3 6 7 窗口中最大值为5
  7. * 4[ 3 5 4] 3 3 6 7 窗口中最大值为5
  8. * 4 3 [5 4 3] 3 6 7 窗口中最大值为5
  9. * 4 3 5 [4 3 3 ]6 7 窗口中最大值为4
  10. * 4 3 5 4 [3 3 6] 7 窗口中最大值为6
  11. * 4 3 5 4 3 [3 6 7 ] 窗口中最大值为7
  12. * 如果数组的长度为n,窗口大小为w,则一共产生n-w+1个窗口的最大值
  13. * 请实现一个函数
  14. * 输入:整数数组为arr,窗口大写为W。
  15. * 输出:一个长度为n-w+1的数组res,res[i]表示每一种窗口状态下的最大值,以本题为例,结果应该返回{5,5,5,4,6,7}
  16. */
  17. public class GetMaxWindow {
  18. public static void main(String[] args) {
  19. int [] arr1={4,3,5,4,3,3,6,7};
  20. int w=3;
  21. GetMaxWindow window=new GetMaxWindow();
  22. arr1=window.getMaxWindow1(arr1, w);
  23. for(int a:arr1){
  24. System.out.println(a);
  25. }
  26. System.out.println("---------------------------------------");
  27. i

文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/50226531

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。