当前位置: 首页 > news >正文

奉贤集团公司网站建设做团购网站

奉贤集团公司网站建设,做团购网站,办公室装修报价表,陕西交通建设集团网站题目描述 有一套系统需升级,为减小系统升级期间的影响,需根据系统过去一段时间内的每小时平均访问数据,来预测 最佳升级时间窗。 现给长度为168(7*24)的整数数组,表示一个周期(假设从周一00:…

题目描述

有一套系统需升级,为减小系统升级期间的影响,需根据系统过去一段时间内的每小时平均访问数据,来预测

最佳升级时间窗。

现给长度为168(7*24)的整数数组,表示一个周期(假设从周一00:00到周日24:00)的每小时历史数据,最佳升级时间窗选择规则如下:

  • 时间窗内累计用户访问量必须大于给定的容忍值

  • 时间窗必须是连续的x个小时,最大的x即为最佳升级时间窗,且不超过7*24.

  • 时间窗允许跨周期,例如当前周期的第167小时到下一周期的第166axioms,是一个长度为168的时间窗。

请计算最佳升级时间窗,并返回其开始时间和结束时间的数组下标。如果存在多个最佳升级时间窗,返回开始时间下标最小的一个。

解答要求

时间限制:1000ms,内存限制:256MB

输入

第一行为整数n,表示给定的升级影响的容忍值,取值范围:[0, 2^31]。

第二行为7*24个整数,表示一个周期(7*24)的每个小时用户访问量,每个值的范围:[0, 2^31]。

输出

两个整数,分别表示所计算出的最佳升级时间窗的开始时间下标(包含)和结束时间下标(包含),不存在时返回 -1 -1

样例

输入样例

6
1 2 3 4 5 6 7 8 9 10 11 12 12 11 10 9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9 10 11 12 12 11 10 9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9 10 11 12 12 11 10 9 8 7 6 5 4 3 2 1

输出样例

22 25

编码实现(java)

    public static void main(String[] args) {int[] pvByHourWeekly = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1};int[] result = getBestTimeWindow(pvByHourWeekly, 6);System.out.println(Arrays.stream(result).mapToObj(String::valueOf).collect(Collectors.joining(" ")));}public static int[] getBestTimeWindow(int[] pvByHourWeekly, int pvErrorTolerance) {int start = 0;int end = 0;int sum = 0;int maxWindow = 0;int maxStart = -1; // 初始值为-1,未找到最佳时间窗口for (int i = 0; i < pvByHourWeekly.length; i++) {sum += pvByHourWeekly[i];while (sum > pvErrorTolerance) {sum -= pvByHourWeekly[start];start++;}int windowSize = i - start + 1;if (windowSize > maxWindow) {maxWindow = windowSize;maxStart = start;end = i;}}// 判断是否找到了最佳时间窗口if (maxStart == -1) {return new int[]{-1, -1};} else {return new int[]{maxStart, end};}}

优化后代码

    public static void main(String[] args) {int[] pvByHourWeekly = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1};int[] result = getBestTimeWindow(pvByHourWeekly, 6);System.out.println(Arrays.stream(result).mapToObj(String::valueOf).collect(Collectors.joining(" ")));}public static int[] getBestTimeWindow(int[] pvByHourWeekly, int pvErrorTolerance) {int start = 0;int end = 0;int sum = pvByHourWeekly[0];int maxWindow = 1;int maxStart = -1;for (int i = 1; i < pvByHourWeekly.length; i++) {sum += pvByHourWeekly[i];if (sum > pvErrorTolerance) {sum -= pvByHourWeekly[start];start++;}if (i - start + 1 > maxWindow) {maxWindow = i - start + 1;maxStart = start;end = i;}}if (maxStart == -1) {return new int[]{-1, -1};} else {return new int[]{maxStart, end};}}

输出结果

22 25Process finished with exit code 0
http://www.yayakq.cn/news/97216/

相关文章:

  • 聊城网站制作信息南宁网站建设索王道下拉
  • 做venn的网站高新区网站建设
  • 微信网站开发登录网站接入支付宝在线交易怎么做
  • 广元建设工程网站网站建设选超速云建站
  • 音乐网站建设流程青岛百度网站排名优化
  • 网站开发百灵鸟优化下列关于wap手机网站
  • 职业中学网站建设网站前台做好之后再怎么做
  • 网站建设的好处有什么用淘宝客是以下哪个网站的会员简称
  • 高端的网站建设同企网站建设做网站
  • 网站登录 效果代码php+做网站
  • 网站开发实施步骤和说明微信小程序开发商家
  • 在原域名给公司建立网站福清seo
  • 网站关键字可以做几个整合网络营销推广
  • 做配件出口上什么网站创意网页设计模板
  • 移动端网站开发前端模板品牌建设和品牌打造
  • 扫描网站特征dede网站安全维护怎么做
  • 杭州企业网站设计制作大学生文创产品设计
  • 网站开发基础学习wordpress分享js代码
  • 佛山网站制作在线视频网站建设解决方案
  • 怎么给自己的网站做优化惠州网站建设(推荐乐云践新)
  • 网站加载特效代码wordpress不显示仪表盘
  • 开发国外优惠卷网站如何做网站下载到本地
  • 玉溪建设局门户网站怎样说服公司做网站
  • 乐趣做网站深圳关键词优化平台
  • 专业网站推荐打开网站弹出视频js
  • 三亚网站建设平台网站备案填写要求
  • 中国有哪些网站可以做兼职外贸营销信
  • 建设旅游网站的功能定位程序开发过程有哪四个步骤
  • 做响应式网站的公司wordpress文章内图片幻灯片
  • 企业网站用什么数据库洪梅仿做网站