题目描述

给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1}, {2,3,4,[2,6,2],5,1}, {2,3,4,2,[6,2,5],1}, {2,3,4,2,6,[2,5,1]}。

题目地址

https://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788?tpId=13&tqId=11217&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

思路

思路1:

思路2:数组切片

Python

# -*- coding:utf-8 -*-
class Solution:
def maxInWindows(self, num, size):
# write code here
if len(num) < size or size == 0:
return []
# 思路1
# left, right = 0, size-1
# res = []
# while right < len(num):
# maxindex = left
# for j in range(left+1,right+1):
# if num[j] > num[maxindex]:
# maxindex = j
# res.append(num[maxindex])
# left += 1
# right += 1
# return res
# 思路2
res = []
for i in range(len(num)-size+1):
res.append(max(num[i:i+size]))
return res if __name__ == '__main__':
result = Solution().maxInWindows([2,3,4,2,6,2,5,1],3)
print(result)

最新文章

  1. ASP.NET Core模块概述
  2. 浅谈Nginx负载均衡和F5的区别
  3. IT男的”幸福”生活
  4. 深入理解BootStrap之栅格系统(布局)
  5. Respond.js – 让 IE6-8 支持 CSS3 Media Query
  6. mac上的键盘生活——quicksliver
  7. information_schema.triggers 学习
  8. java代码如何读取properties文件
  9. js框架——angular.js
  10. SpringBoot入门教程(一)详解intellij idea搭建SpringBoot
  11. PS教您与粗壮的胳膊拜拜
  12. [物理学与PDEs]第1章第9节 Darwin 模型 9.3 Darwin 模型
  13. Java岗 面试考点精讲(网络篇03期)
  14. mvc、mvp和mvvm理解
  15. ssh 的认证原理
  16. 第 3 章 镜像 - 019 - 使用公共 Registry
  17. 018 jquery中的事件
  18. MacBook PRO蓝牙无法搜索设备
  19. Spring框架的核心功能之AOP概述
  20. bata4

热门文章

  1. Markdown的基本语法记录
  2. ArcGIS发布地图服务时报错Error: ArcGIS Server site is currently being configured by another administrative operation. Please try again later.
  3. Qt核心机制与原理
  4. 第二课 ---git时光穿梭(版本回退)
  5. 构建web应用之——SpringMVC实现CRUD
  6. GET 和 POST 请求的优缺点和误区
  7. Python_Mix*内置函数
  8. JS-5-循环
  9. C# DotNetBar ribboncontrol子窗体的系统控件(最大最小关闭)在父窗体中多余显示
  10. python 进程池Pool的apply_async方法以及一些需要注意的地方