首页 > 其他分享 >滑动窗口(双指针同向扫描)

滑动窗口(双指针同向扫描)

时间:2024-02-06 13:56:41浏览次数:24  
标签:int sum 扫描 num 美丽 ans 区间 滑动 指针

题目:

对于一个数组a[0],a[1]....a[n]和一个常数s,若一个连续区间和大于或等于s则为美丽区间,区间越短越美丽。

输入:

第一行包含两个整数 n,s,其含义如题所述。

第二行包含n个整数,代表a[0],a[1]....a[n]。

输出:

输出共一行,包含一个整数,表示最美丽的区间的长度。

若不存在任何美丽的区间,则输出 0。

答案:

#include <bits/stdc++.h>
using namespace std;
int n,s,sum;
int num[100010];
int l=0,r=0;
int main() {
	cin>>n>>s;
	int ans=n;
	for(int i=0;i<n;i++){
		cin>>num[i];
	}
	sum=num[l];
	while(true){
		if(l==n||r==n) break;
		
		if(sum>=s){
			ans=min(ans,r-l+1);
			sum-=num[l];//左端点往右移动删除前一个元素(这是精髓,降低了时间复杂度)
			l++;
			
		}
		else{
			r++;
			sum+=num[r];//右端点往右移动增加元素
		}
	}
	if(ans==n) cout<<0;
	else cout<<ans;
	return 0;
}

标签:int,sum,扫描,num,美丽,ans,区间,滑动,指针
From: https://www.cnblogs.com/bzlx1717/p/18009591

相关文章

  • 【CPL-2023】W9 W10 W11 笔记-指针
    指针1.W9指针就是存储内存地址的变量*是一个单目运算符*p既可以作为左值也可以被作为右值可以把*p当做一个变量的别名来理解voidfun(inta[],intlen)等价于voidfun(int*a,intlen)第一个参数是数组名称的时候,方括号里不需要写数量,传过来的只是一个数组的地址......
  • (13/60)滑动窗口最大值、前K个高频元素
    滑动窗口最大值leetcode:239.滑动窗口最大值第一个hard!workout!资源占用竟然如此之大,,单调队列法思路需要一个抽象的类队列数据结构,每轮移动时:1.把队首pop;2.把下一元素push进队尾;3.获取队列最大值存入数组。pop实现:每次移动时尝试(说“尝试”是因为可能已经弹出了)弹出队首......
  • sonarqube静态代码扫描工具常见用法
    安装服务器端的sonarqube下载地址:https://www.cnblogs.com/cxygg/p/18008738客户端有很多种比如SonarScannerCLI,JenkinsextensionforSonarQube,SonarScannerforMaven,sonarlint等创建项目后获取tokenSonarScannerCLI的使用下载地址解压后修改配置文件......
  • 代码随想录算法训练营第十三天|239. 滑动窗口最大值 347.前 K 个高频元素 总结
    239.滑动窗口最大值题目链接:239.滑动窗口最大值-力扣(LeetCode)给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回 滑动窗口中的最大值 。思路:首先在不考虑......
  • 扫描线
    扫描线的精髓是通过离线、引入时间维,把静态询问降低一维、变成动态问题。一般是先把若干询问通过可减性变成前缀询问,再离线、从左到右排序,从左到右一个一个地一边加入元素,一边回答询问。以下是例题+一句话题解。(虽然可能不是真的一句话)平面最值二维平面上\(n(\le10^5)\)个......
  • c的多级指针
    指针的本质就是一个普通变量,它的值表示的是一个内存地址,这个地址中可能存放了其它变量。那么二级指针其实也是一个普通的变量,这个变量中同样也存放了一个内存地址,而这个内存地址是一个指针变量的地址比如:inta=0;intb=1;int*p=&a;int**p2=&p;*(pointer)就是修......
  • Nexpose v6.6.236 for Linux & Windows - 漏洞扫描
    Nexposev6.6.236forLinux&Windows-漏洞扫描Rapid7VulnerabilityManagement,ReleaseFeb02,2024请访问原文链接:https://sysin.org/blog/nexpose-6/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org您的本地漏洞扫描程序搜集通过实时覆盖整个网络,随......
  • CF522D Closest Equals 离线扫描 + 线段树
    CF522DClosestEquals题意:m个询问,求[l,r]内相同元素的最小距离。离线询问,按右端点排序。对于每一个a[i],如果last[a[i]]存在,将线段树last[a[i]]的位置改为i-last[a[i]]。查询区间最小值。当然这题也可以回滚莫队。注:本题一路从黑题堕落到绿题#include<bits/stdc......
  • 网络安全之漏洞扫描
    漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。这些缺陷、错误或不合理之处可能被有意或无意地利用,从而对一个组织的资产或运行造成不利影响,如信息系统被攻击或控制,重要资料被窃取,用户数据被篡改,系统被作为入......
  • 【C++】类和对象(一)[类的相关定义及this指针]
    C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。C++在C语言的基础上增加了面向对象编程,C++支持面向对象程序设计。类是C++的核心特性,通常被称为用户定义的类......