滑动窗口 | 求最长连续子数组
时间:2019-11-27
本文章向大家介绍滑动窗口 | 求最长连续子数组,主要包括滑动窗口 | 求最长连续子数组使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目:
给定一个数组 {3, 1, 2, 1} 和一个数字k =4。求这个数组的一个最长连续子数组,这个最长连续子数组中所有数字的和必须小于或等于k。 例如,上面这个例子中,连续子数组有这么多种情况: {3}, {1}, {2}, {1}, {3, 1}, {1, 2}, {2, 1}, {3, 1, 2}, {1, 2, 1}, {3, 1, 2, 1}。 其中符合条件的就只有{1, 2, 1}。
代码:
代码分析的数据跟题目不一样但是换汤不换药(╯▽╰ )
#include <iostream> #include<stdio.h> using namespace std; int main() { int arr[9] = { 1,1,1,9,9,1,1,1,1 };//存放基础数据 int k = 4;//目标 int sum[9]={}; int len[9]={}; //滑窗长度 int loclen = 0; //记录当前滑窗长度 int locsum = 0; //记录当前滑窗求和 int startindex = 0; //记录滑窗起始位置 for (int i = 0;i < 9;i++) { locsum = locsum + arr[i]; if (locsum > k) { locsum = locsum - arr[startindex]; startindex++; sum[i] = locsum; len[i] = loclen; } else { sum[i] = locsum; loclen = loclen + 1;//窗口长度自增 len[i] = loclen; } } printf("sum= "); for (int i = 0;i < 9;i++) printf(" %d ", sum[i]); printf("\nlen= "); for (int i = 0;i < 9;i++) printf(" %d ", len[i]); printf("\n"); return 0; }
原文地址:https://www.cnblogs.com/chrysanthemum/p/11940307.html
- 关于监视容器我们了解的5件事
- C#检测SqlServer中某张表是否存在
- Cobbler自动化批量安装linux服务器的操作记录
- Twemproxy——针对MemCached与Redis的代理
- 谁适合学Python?学了Python可以做什么工作?
- webservice今日遇到的二个问题:DataTable + Namespace
- php安全配置记录和常见错误梳理
- Flex:地图缩放平移效果(简易版)
- Mongodb副本集+分片集群环境部署记录
- 线上mongodb 数据库用户到期时间修改的操作记录
- 微信小程序“授权失败”场景的处理
- 动软.net代码生成器 win2008 r2下无法连接oracle,以及vs2008模板丢失的解决
- ASP.NET Web API 支持 CORS
- oracle odp.net 32位/64位版本的问题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Redis Lua脚本调试
- 安装elasticsearch 5.x, 6.x 常见问题(坑)的解决
- 轻松搞懂elasticsearch概念
- 深入Golang调度器之GMP模型
- 深入Golang之sync.Pool详解
- 一次对电视盒子的漏洞分析
- MQ选型之RabbitMQ
- httprouter与 fasthttp 的性能对比
- Nmap 脚本研究
- Nmap NSE 库分析 >>> http
- Nmap NSE 库分析 >>> httpspider
- Nmap NSE 库分析 >>> url
- Go语言中的byte和rune区别、对比
- Nmap NSE 缺陷
- Golang服务器热重启、热升级、热更新(safe and graceful hot-restart/reload http server)详解