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

双指针思路

步骤:

(1) 枚举左端点

(2) 如果当前符合条件,不断移动右端点,直到无法移动

(3) 更新答案

(4) 判断左右端点是否重合

      · 重合:强制移动右端点

      · 不重合:看左端点移动的时候是否需要维护信息

左端点在 for 循环里自己会增加,不需要手动去移动左端点

 

例题:ABC 381 / D 

 

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 2e5 + 5, INF = 1e18;int T, n, cnt, ans, a[N], vis[N];
string s;int f(int hd)
{int res = 0;for (int i = 1; i <= N; i ++)vis[i] = 0;for (int l = hd, r = hd; l < n; l += 2){while (a[r] == a[r + 1] && vis[a[r]] == 0 && r + 1 <= n){vis[a[r]] = 1;r += 2;}res = max(res, r - l);if (l == r)r += 2;elsevis[a[l]] = 0;}return res;
}signed main()
{cin >> n;for (int i = 1; i <= n; i ++)cin >> a[i];ans = max(f(1), f(2));cout << ans;return 0;
}
http://www.xdnf.cn/news/4692.html

相关文章:

  • 使用频域变换轻松压缩kv-cache
  • pip安装包时出现网络问题的坑
  • Nvidia Orin 安装onnxruntime-gpu
  • 中科固源:蓝牙协议栈架构与核心协议深度剖析
  • C语言——操作符
  • VSCode怎么同时打开多个页面
  • 分区器(1)
  • 测度论——测度论思想的引出
  • Linux电源管理(7)_Wakeup events framework
  • 动态规划--线性dp
  • leeCode算法之独一无二出现次数
  • 【HarmonyOS 5】鸿蒙Web组件和内嵌网页双向通信DEMO示例
  • 晶体布局布线
  • 【CUDA C实战演练】CUDA介绍、安装、C代码示例
  • 电商双十一美妆数据分析(代码)
  • MapReduce中的分区器
  • Ceph 原理与集群配置
  • 网络技术基础,NAT,桥接,交换机,路由器
  • 关于Stream
  • paddle ocr 或 rapid ocr umi ocr 只识别了图片的下部分内容 解决方案
  • 如何避免“救火式管理”消耗精力
  • EEG设备的「减法哲学」:Mentalab Explore如何用8通道重构高质量脑电信号?
  • C++20新特新——02特性的补充
  • 数字乡村综合管理与服务平台软件需求规格说明文档
  • Office365功能特点
  • vue3:十二、图形看板- 基础准备+首行列表项展示
  • MySQL基础关键_011_视图
  • MCU怎么运行深度学习模型
  • 跨境电商生死局:动态IP如何重塑数据生态与运营效率
  • 【PhysUnits】2.2 Scalar<T> 标量元组结构体(scalar/mod.rs)