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

公司网站设计需要什么百度网页

公司网站设计需要什么,百度网页,福建省人民政府第七办公室,网站毕业设计代做靠谱吗题目如下 数据范围 观察数据范围理论上平方复杂度的算法计算次数逼近1e9还不至于超时,但是由于有mod 1e9导致超时。所以本题不能靠暴力枚举来解决。 所以我们可以思考如何在枚举上面减少计算次数:第一种枚举法:最外层i控制子数组的左边界&…

题目如下
在这里插入图片描述

数据范围
在这里插入图片描述

  观察数据范围理论上平方复杂度的算法计算次数逼近1e9还不至于超时,但是由于有mod 1e9导致超时。所以本题不能靠暴力枚举来解决。
所以我们可以思考如何在枚举上面减少计算次数:第一种枚举法:最外层i控制子数组的左边界,内层则从左边界开始遍历到最后其中维持最小值。如此可以枚举完所有的子数组,显然超时。这种枚举法不好在忽略了一个值可能是很多子数组的最小值。例如 在数组[3,1,2,4]中子数组[3,1,2] [1,2]最小值都是1所以不方便减少计算次数。第二种枚举法:因为子数组长度最小可以为1所以每个数都可以至少是一个子数组的最小值,我们可以通过从一个数出发向左向右寻找第一个小于这个数的左右边界。我们只需要算出在这个边界能形成多少个包含i的子数组就可以得到以arr[i]为最小值的子数组的数量。(即从[l,i] [i,r]各自选1个值就行 排列组合的思想)显然也超时,但是很好利用了特性。
所以我们来思考如何减少第二种枚举法的复杂度:因为向左向右寻找的思路一样所以这里就仅说明向左寻找的思路。显然每次向左搜索第一个小于这个数的重复计算太多,我们可以想想几种情况如果数组有(i,j都是下标且i < j)那么我们令i j对应的第一个小于的坐标为i1 和 j1,当arr[i] > arr[j]时 有i1 >= j1(j >= j1) 我们记为1情况当arr[i] <= arr[j]时 有i1 <= j1 我们记为2情况
从两个情况我们可以看出j可能会被i作为答案所以我们先存起来,如果j不是i答案那么i的答案i1必然在j1前所以寻找j1所排除的与i1并无关系甚至推广来说只要当前处理的i下标大于j那么因为j排掉的答案并不是i的答案。换句话说我们处理完j以后只需要把j存起来以防万一i的答案是j就行。所以我们可以考虑引入单调栈从左到右遍历数组(按严格递增的趋势)对每个处理的i如果栈顶大于等于就出栈直到栈空或者栈顶小于arr[i]。如此便确定左边界,当然我们采用左开右开的区间方便计算(使用-1作为哨兵)。右边界同理只不过是从右往左遍历这里不多赘述。那么这里还要注意处理重复区间:当我们允许左边界包含重复数字时就不能让右边界包含了,假设数组存在多个重复值任选两个两个一样的数,如果我们让左右都可以包含重复值就会产生重复计算所以只能让一边可以包含重复值。

通过代码

class Solution {
public:int sumSubarrayMins(vector<int>& arr) {int n = arr.size(),mod = (1e9 + 7),ans = 0;vector<int> l(n),r(n);stack<int> s;for (int i = 0; i < n; i++) {while(!s.empty() && arr[s.top()] > arr[i]){s.pop();}l[i] = (s.empty())?-1:s.top();s.push(i);}s = stack<int>();for (int i = n - 1; i >= 0; i--) {while(!s.empty() && arr[s.top()] >= arr[i]){s.pop();}r[i] = (s.empty())?n:s.top();s.push(i);}for(int i = 0;i < n;i++){ans = (ans + (long long)arr[i] * (i - l[i]) * (r[i] - i)) % mod;}return ans; }};

在这里插入图片描述

http://www.ds6.com.cn/news/89291.html

相关文章:

  • 做网站程序看什么书站长工具名称查网站
  • 广州网站建设哪家有哈尔滨最新
  • 网站建设管理工作情况报告视频推广平台
  • 青岛建手机网站公司厦门百度推广开户
  • 设计友好的网站谷歌搜索引擎 google
  • 设计接单子网站东莞免费网站建设网络营销
  • 网站建设岗位有哪些产品推广ppt范例
  • 做企业内刊有哪些网站推荐第一推广网
  • 做幼儿网站的目标遵义网站seo
  • 网站建设伍际网络网络营销公司名字
  • 十堰网站制作公司自有品牌如何推广
  • 做外贸是哪里网站百度网址导航主页
  • 新鸿儒做网站百度top排行榜
  • 江西省建设招标网站windows优化大师免费
  • 滕州网站制作哪家好什么网站推广比较好
  • 手机网站微信支付接口开发教程东莞好的网站国外站建设价格
  • 免费app制作网站附近的成人电脑培训班
  • 网站 公安局备案 接入单位搜索广告排名
  • 邢台地区网站建设售后完善优化软件刷排名seo
  • 建设网站预算青岛网站建设公司排名
  • 微网站如何做横幅链接百度一下网页版浏览器百度
  • 汕头市疫情最新消息独立站seo外链平台
  • 公司做二手网站的用意宁德市教育局
  • axure可以做网站吗b站软件推广大全
  • 企业网站建设现状对网络营销的认识有哪些
  • 在服务器上布网站怎么做长沙官网优化公司
  • 做网站的前端技术百度app客服电话
  • 青岛网站策划万能引流软件
  • 国家发改委网站开发区b站免费推广app大全
  • wordpress 国内视频网站推广策略怎么写