滑动窗口最大值

给你一个整数数组 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;  
    }
} 笑点解析:题目没通过,在**发表不了 ,故在牛客记录一下(悲
全部评论

相关推荐

1.&nbsp;&nbsp;你先自我介绍一下。2.&nbsp;&nbsp;(针对专业)你是主要自学Java的是吗?3.&nbsp;&nbsp;你觉得Java里有哪些组件或特性是(工作中)的优势?4.&nbsp;&nbsp;了解&nbsp;Spring&nbsp;Cloud&nbsp;或&nbsp;Spring&nbsp;Boot&nbsp;里的服务发现(Discovery)吗?5.&nbsp;&nbsp;你对源码了解(多少)?6.&nbsp;&nbsp;如果要实现增删改查的一系列接口,你能描述一下整个实现过程吗?7.&nbsp;&nbsp;如果你有多个接口(或服务)都要连接DB,DB的连接你怎么管理呢?8.&nbsp;&nbsp;(连接池)你了解它的工作流程吗?(比如连接保护、上下线、获取活跃连接、断线重试)9.&nbsp;&nbsp;你用连接池时有没有发现读放大和写放大的问题?10.&nbsp;你可以讲一下(读写放大)问题发生的原因以及如何恢复吗?11.&nbsp;流量层面的读写放大(比如Retry导致)你了解吗?12.&nbsp;你有没有在线上环境做过服务进程间的Debug?13.&nbsp;(Debug)有什么途径可以分析到是哪一行或哪个方法有问题?14.&nbsp;你怎么样验证你的代码是OK的?有没有写过单元测试(Unit&nbsp;Test)?15.&nbsp;如果你的方法调用了数据库,你怎么Mock掉(数据库依赖)?16.&nbsp;(Mock)如果(被测)方法里写了连接数据库并查询的逻辑,那怎么办?17.&nbsp;(Mock)你怎么Mock一个Client或模拟数据返回?18.&nbsp;(RBAC)你可以再仔细的讲一下吗?19.&nbsp;RBAC核心的几张表以及它们之间的关联是什么?20.&nbsp;看看您这边有什么问题?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务