当前位置:网站首页>滑动窗口的最大值
滑动窗口的最大值
2022-08-03 12:47:00 【Array_new】
滑动窗口的最大值
给定一个数组 nums 和滑动窗口的大小 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 3
1 [3 -1 -3] 5 3 6 7 3
1 3 [-1 -3 5] 3 6 7 5
1 3 -1 [-3 5 3] 6 7 5
1 3 -1 -3 [5 3 6] 7 6
1 3 -1 -3 5 [3 6 7] 7
提示:
你可以假设 k 总是有效的,在输入数组不为空的情况下,1 ≤ k ≤ 输入数组的大小。
class Solution {
public int[] maxSlidingWindow(int[] nums, int k) {
if(nums.length==0)return nums;
int[] a=new int[k];
int[] end=new int[nums.length-k+1];
int j=0;
int cur=0;
for(int i=0;i<nums.length;i++){
a[j]=nums[i];
j++;
if(j==k){
Arrays.sort(a);
end[cur]=a[k-1];
i=cur;
cur++;
j=0;
}
if(i==nums.length+1)break;
}
return end;
}
}
本题可以利用数组和指针来求解,先声明cur
这个指针指向滑动窗口的第一个值由于循环的+
是在循环后执行所以用该指向的位置减去1
就可以得到新的数组,利用Arrays
种的sort
方法找出最大值,这样就可以利用简单的for循环来求解答案,存放在最终的数组中,同样也可以利用队列或栈来求解来减少时间复杂度。
边栏推荐
猜你喜欢
IronOS, an open source system for portable soldering irons, supports a variety of portable DC, QC, PD powered soldering irons, and supports all standard functions of smart soldering irons
论文理解:“Gradient-enhanced physics-informed neural networks for forwardand inverse PDE problems“
无监督学习KMeans学习笔记和实例
【精品必知】Pod生命周期
An基本工具介绍之选择线条工具(包教会)
便携烙铁开源系统IronOS,支持多款便携DC, QC, PD供电烙铁,支持所有智能烙铁标准功能
类型转换、常用运算符
Yahoo! Answers-数据集
An动画优化之传统引导层动画
什么是分布式锁?几种分布式锁分别是怎么实现的?
随机推荐
An工具介绍之宽度工具、变形工具与套索工具
When Nodejs installation depends on cpnm, the install shows Error: Cannot find module 'fs/promises'
An introduction to basic tools for selecting line tools (package church)
An动画优化之遮罩层动画
来广州找工作有一个多月了,今天终于有着落了,工资7000
Last blog for July
Basic principle of the bulk of the animation and shape the An animation tip point
Notepad++ 安装jsonview插件
Mysql重启后innodb和myisam插入的主键id变化总结
An工具介绍之摄像头
Secure Custom Web Application Login
Yahoo!Answers - data set
利用pgsql插件PostGIS 实现地理坐标系数据转换
超多精美礼品等你来拿!2022年中国混沌工程调查启动
Key points for account opening of futures companies
Jmeter使用
链游NFT元宇宙游戏系统开发技术方案及源码
d作者:d的新特性
随机森林项目实战---气温预测
15. PARTITIONS「建议收藏」