滑动窗口最大值
给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。
返回 滑动窗口中的最大值 。
输入:nums = [1,3,-1,-3,5,3,6,7], k = 3
输出:[3,3,5,5,6,7]
暴力题解通过41/51 超时 利用在原数组中不断遍历进行求解
记录:
public class Solution {
public int[] MaxSlidingWindow(int[] nums, int k)
{
int n = nums.Length;
int[] num = new int[n];
int[] result = new int[n + 1 - k];//窗口数量 ,最后返回的值的数量
for (int i = 0; i < n; i++)
{
num[i] = nums[i];
Console.WriteLine(num[i]);//将nums赋值给num【i】
}
for (int j = 0; j < n + 1 - k; j++)//外层循环控制有多少个窗口需要比较
{
int index = j;
for (int i = j; i < k + j ; i++)//内层循环控制每一个窗口中有多少个值需要比较
{
if (num[index] < num[i])
{
index = i ;
}
}
result[j] = num[index]; //每个窗口结束后将MAX值赋值给数组result
}
return result;
}
} 笑点解析:题目没通过,在**发表不了 ,故在牛客记录一下(悲
返回 滑动窗口中的最大值 。
输入:nums = [1,3,-1,-3,5,3,6,7], k = 3
输出:[3,3,5,5,6,7]
暴力题解通过41/51 超时 利用在原数组中不断遍历进行求解
记录:
public class Solution {
public int[] MaxSlidingWindow(int[] nums, int k)
{
int n = nums.Length;
int[] num = new int[n];
int[] result = new int[n + 1 - k];//窗口数量 ,最后返回的值的数量
for (int i = 0; i < n; i++)
{
num[i] = nums[i];
Console.WriteLine(num[i]);//将nums赋值给num【i】
}
for (int j = 0; j < n + 1 - k; j++)//外层循环控制有多少个窗口需要比较
{
int index = j;
for (int i = j; i < k + j ; i++)//内层循环控制每一个窗口中有多少个值需要比较
{
if (num[index] < num[i])
{
index = i ;
}
}
result[j] = num[index]; //每个窗口结束后将MAX值赋值给数组result
}
return result;
}
} 笑点解析:题目没通过,在**发表不了 ,故在牛客记录一下(悲
全部评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享