算法笔试模拟题精解之“超级区间”

简介: 使用 尺取法 对搜索空间进行遍历。设当前区间为[L, R]。初始L = R = 0;使用尺取法需要判断什么时候调整L和R。

在线编程介绍

阿里云开发者社区在线编程产品,针对广大开发者学习、实践、面试、应聘、考试认证等打造的免费在线刷题神器。题库来自笔试模拟题、算法大赛模拟题等,界面整洁明了,操作简单,为用户营造专心答题的学习环境。点击链接开始体验:https://developer.aliyun.com/coding

本文为大家介绍其中的第57题:超级区间 的题目解析,具体如下:

题目描述

题目等级:中等
知识点:二分查找、尺取法

查看题目:超级区间 Tom现在有一个长度为n的数组,Jerry给Tom定义了一种超级区间,如果区间[l,r]满足(a[l]+…+a[r])>=k,则区间[l,r]被称为超级区间,现在Jerry想让Tom告诉他数组中有多少个超级区间。

输入整数n,整数k(1<=n,k<=100000),和一个大小为n的数组,数组的每个元素的大小都在[1,1000]之间。
输出输入数组的超级区间的个数。
示例1
输入:
3
5
[2,3,5]
输出:
4
注意
样例满足条件的超级区间为
[1,2],[2,3],[1,3],[3,3]。

解题思路:尺取法

使用 尺取法 对搜索空间进行遍历。
设当前区间为[L, R]。初始L = R = 0;使用尺取法需要判断什么时候调整L和R。

数组中的所有数都为正数。
情况1:假设对于某个区间[L1, R1]满足超级区间的定义。因为所有数都为正数,所以保持L1不变,依次增加R1直到n为止的所有区间都满足超级区间的定义。
情况2:假设对于某个区间[L2,R2]不满足超级区间的定义。则需要保持L2不动,增加R2才可能满足超级区间的定义。
情况3:是情况2拓展。如果[L2,n]不满足超级区间的定义,则任何i>L2,区间[i, n]都不满足超级区间的定义。

计算过程

  1. 初始L = R = 0;sum = 0; 用来计算满足条件的区间个数
  2. 判断区间 [L, R] 的情况,满足情况1,则sum++; R++。满足情况2, L++。满足情况3,结束计算。
    对于情况1,因为L不变时,后面的所有R都满足条件,所以可以修改为sum+=n-R+1; L++。

时间复杂度O(n^2) 修改之前最差为O(n^2)
空间复杂度O(1) 记录当前区间数组元素的和

看完之后是不是有了想法了呢,快来练练手吧>>查看题目:超级区间

image.png

相关文章
|
2月前
|
算法 测试技术 C#
C++二分查找算法:包含每个查询的最小区间
C++二分查找算法:包含每个查询的最小区间
|
2月前
|
人工智能 算法 BI
class077 区间dp-下【算法】
class077 区间dp-下【算法】
36 0
|
2月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1 算法训练 区间k大数查询
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1 算法训练 区间k大数查询
23 0
|
1月前
|
存储 SQL 算法
高效日程管理:利用区间合并算法优化活动安排【python LeetCode57】
高效日程管理:利用区间合并算法优化活动安排【python LeetCode57】
|
1月前
|
存储 算法 搜索推荐
掌握区间合并:解决实际问题的算法策略和应用案例【python LeetCode题目56】
掌握区间合并:解决实际问题的算法策略和应用案例【python LeetCode题目56】
|
17天前
|
算法
基于仿射区间的分布式三相不对称配电网潮流算法matlab仿真
```markdown # 摘要 本课题聚焦于基于仿射区间的分布式三相配电网潮流算法在MATLAB2022a中的仿真。算法利用仿射运算处理三相不平衡情况及分布式电源注入,旨在提供比区间算法更精确的不确定区域。仿真结果展示了算法优势。核心程序设计考虑了PQ、PV及PI节点,将不同类型的节点转换统一处理,以适应含分布式电源的配电网潮流计算需求。 ``` 这个摘要以Markdown格式呈现,总字符数为233,满足了240字符以内的要求。
|
2月前
|
算法 C++
c++算法学习笔记 (12) 区间合并
c++算法学习笔记 (12) 区间合并
|
2月前
|
算法 搜索推荐 Java
Java数据结构 -- 常见算法分析(查找算法、排序算法)精解详解!!!
Java数据结构 -- 常见算法分析(查找算法、排序算法)精解详解!!!
22 0
|
2月前
|
存储 机器学习/深度学习 人工智能
【算法基础】基础算法(三)--(双指针算法、位运算、离散化、区间合并)
【算法基础】基础算法(三)--(双指针算法、位运算、离散化、区间合并)
|
2月前
|
人工智能 算法
前缀和算法题(区间次方和、小蓝平衡和、大石头的搬运工、最大数组和)
前缀和算法题(区间次方和、小蓝平衡和、大石头的搬运工、最大数组和)