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

网站建设方案总结语微信小程序制作多少钱

网站建设方案总结语,微信小程序制作多少钱,网站开发怎么做,国家公示信息查询系统题目链接 Leetcode.2100 适合打劫银行的日子 Rating : 1702 题目描述 你和一群强盗准备打劫银行。给你一个下标从 0开始的整数数组 security,其中 security[i]是第 i天执勤警卫的数量。日子从 0开始编号。同时给你一个整数 time。 如果第 i天满足以下所…

题目链接

Leetcode.2100 适合打劫银行的日子 Rating : 1702

题目描述

你和一群强盗准备打劫银行。给你一个下标从 0开始的整数数组 security,其中 security[i]是第 i天执勤警卫的数量。日子从 0开始编号。同时给你一个整数 time

如果第 i天满足以下所有条件,我们称它为一个适合打劫银行的日子:

  • i天前和后都分别至少有 time天。
  • i天前连续 time天警卫数目都是非递增的。
  • i天后连续 time天警卫数目都是非递减的。

更正式的,第 i天是一个合适打劫银行的日子当且仅当:security[i - time] >= security[i - time + 1] >= ... >= security[i] <= ... <= security[i + time - 1] <= security[i + time].

请你返回一个数组,包含 所有 适合打劫银行的日子(下标从 0开始)。返回的日子可以 任意 顺序排列。

示例 1:

输入:security = [5,3,3,3,5,6,2], time = 2
输出:[2,3]
解释:
第 2 天,我们有 security[0] >= security[1] >= security[2] <= security[3] <= security[4] 。
第 3 天,我们有 security[1] >= security[2] >= security[3] <= security[4] <= security[5] 。
没有其他日子符合这个条件,所以日子 2 和 3 是适合打劫银行的日子。

示例 2:

输入:security = [1,1,1,1,1], time = 0
输出:[0,1,2,3,4]
解释:
因为 time 等于 0 ,所以每一天都是适合打劫银行的日子,所以返回每一天。

示例 3:

输入:security = [1,2,3,4,5,6], time = 2
输出:[]
解释:
没有任何一天的前 2 天警卫数目是非递增的。
所以没有适合打劫银行的日子,返回空数组。

提示:

  • 1<=security.length<=1051 <= security.length <= 10^51<=security.length<=105
  • 0<=security[i],time<=1050 <= security[i], time <= 10^50<=security[i],time<=105

分析:

适合打劫的那天 security[i](包括第 i天在内),前 time+1天是非递增的,后 time+1天是非递减的。

我们使用 前后缀分解 求解本题。

定义两个数组 left,right

  • left[i]表示,以 security[i]结尾,非递增的连续天数。
  • right[i]表示,以 security[i]结尾,非递减的连续天数。

我们能够遍历的合法区间是 [time,n-time-1]。只要在这个区间内,left[i] >= time+1 && right[i] >= time+1说明第 i天是适合打劫的。

时间复杂度:O(n)O(n)O(n)

C++代码:

class Solution {
public:vector<int> goodDaysToRobBank(vector<int>& security, int time) {int n = security.size();vector<int> left(n),right(n);left[0] = 1;for(int i = 1;i < n;i++){left[i] = 1;if(security[i-1] >= security[i]) left[i] += left[i-1];}right[n-1] = 1;for(int i = n - 2;i >= 0;i--){right[i] = 1;if(security[i+1] >= security[i]) right[i] += right[i+1];}vector<int> ans;for(int i = time;i < n - time;i++){if(left[i] >= time + 1 && right[i] >= time + 1) ans.push_back(i);}return ans;}
};

Java代码:

class Solution {public List<Integer> goodDaysToRobBank(int[] security, int time) {int n = security.length;int[] left = new int[n];int[] right = new int[n];left[0] = 1;for(int i = 1;i < n;i++){left[i] = 1;if(security[i-1] >= security[i]) left[i] += left[i-1];}right[n-1] = 1;for(int i = n - 2;i >= 0;i--){right[i] = 1;if(security[i+1] >= security[i]) right[i] += right[i+1];}List<Integer> res = new ArrayList<>();for(int i = time;i < n - time;i++){if(left[i] >= time + 1 && right[i] >= time + 1) res.add(i);}return res;}
}
http://www.yayakq.cn/news/963795/

相关文章:

  • 南京服务好建设网站哪家好app界面设计介绍
  • 网站分析一般要重点做哪几项内容采购管理系统免费版
  • 济南网站建设方案报价行政机关单位网站建设要求
  • tp框架做购物网站开发网页设计师培训方法
  • 公司报备网站做网站最好的工具
  • 房地产网站开发长春建网站一般要多少钱
  • 在环评备案网站上做登记后会怎么样6微信号商城平台
  • 济南网站建设百家号wordpress媒体库数据
  • 专门做算法项目的网站个人备案的网站竞价排名做不了
  • 外贸网站建设青岛网站开发颜色选择器
  • 购物网站网页设计模板html网页制作心得体会
  • 自己做网站升seo吉林省建设厅信息网站
  • 免费做网站报价网站平台建设专家意见
  • 网站首页标题怎么写网店代运营公司排名
  • 重庆定制网站建设免费建网站系统
  • 手机网站用什么系统现在开网站做微商赚钱吗
  • 企业网站优化方式做网站的怎么跑业务
  • 有什么那个网站重庆哪里好玩
  • 怎样做网站认证wordpress动漫连载模板
  • 怎么做网站管理简单的电商网站
  • 如何快速优化网站wordpress开发环境搭建
  • 设计手机访问的网站360网站安全检测
  • 制作一个网站多少钱啊电脑版和手机版网站怎么做
  • 物流系统网站策划书大连旅顺
  • 东莞网站建设 光龙评论插件 wordpress
  • 网站项目整体思路wordpress编辑header
  • 北京建设网站设计黄冈网站推广都有哪些渠道
  • 公司做网站一般多少钱企业app开发制作
  • 地方门户网站的推广如何把网站提交到百度
  • 用电脑怎么做原创视频网站百度搜索优化怎么做