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

网站制作潍坊区域网络营销课程心得体会

网站制作潍坊区域,网络营销课程心得体会,做我的世界缩略图的网站,南京医疗网站建设双指针算法 代码模板 for (int i 0, j 0; i < n; i ){while (j < i && check(i, j)) j ;// 具体问题的逻辑 } 常见问题分类&#xff1a;(1) 对于一个序列&#xff0c;用两个指针维护一段区间(2) 对于两个序列&#xff0c;维护某种次序&#xff0c;比如归并…

双指针算法

代码模板

for (int i = 0, j = 0; i < n; i ++ ){while (j < i && check(i, j)) j ++ ;// 具体问题的逻辑
}
常见问题分类:(1) 对于一个序列,用两个指针维护一段区间(2) 对于两个序列,维护某种次序,比如归并排序中合并两个有序序列的操作

例题一:最长连续不重复子序列

题目

给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。

输入格式

第一行包含整数 n

第二行包含 n 个整数(均在 0 \sim 10^5 范围内),表示整数序列。

输出格式

共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。

数据范围

1\leq n\leq 10^5

输入样例

5
1 2 2 3 5

输出样例

3

代码示例

#include <iostream>
using namespace std;const int N = 100010;int a[N], s[N];int main(){int n;cin >> n;for(int i = 0; i < n; i++) cin >> a[i];//双指针运算int res = 0;for(int i = 0, j = 0; i < n; i++){s[a[i]]++;while(j < i && s[a[i]] > 1) s[a[j++]]--;//先--后++res = max(res, i - j + 1);}cout << res << endl;
}

例题二:数组元素的目标和

题目

给定两个升序排序的有序数组 A 和 B,以及一个目标值 x

数组下标从 0 开始。

请你求出满足 A[i]+B[j] = x 的数对 (i, j)

数据保证有唯一解。

输入格式

第一行包含三个整数 n, m, x,分别表示 A 的长度,B 的长度以及目标值 x

第二行包含 n 个整数,表示数组 A

第三行包含 m 个整数,表示数组 B

输出格式

共一行,包含两个整数 i 和 j

数据范围

数组长度不超过 10^5
同一数组内元素各不相同。
1\leq 数组元素\leq 10^9

输入样例

4 5 6
1 2 4 7
3 4 6 8 9

输出样例

1 1

代码示例

#include <iostream>
using namespace std;const int N = 100010;int a[N], b[N];int main() {int n, m, x;cin >> n >> m >> x;for (int i = 0; i < n; i++) cin >> a[i];for (int i = 0; i < m; i++) cin >> b[i];for (int i = 0, j = m - 1; i < n; i++){while (j >= 0 && a[i] + b[j] > x) j--;//时间复杂度为O(m+n)if (j >= 0 && a[i] + b[j] == x) cout << i << ' ' << j << endl;}}

例题三:判断子序列

题目

给定一个长度为 n 的整数序列 a_1,a_2,...,a_n 以及一个长度为 m 的整数序列 b_1,b_2,...,b_n

请你判断 a 序列是否为 b 序列的子序列。

子序列指序列的一部分项按原有次序排列而得的序列,例如序列 \left \{ a_1,a_3,a_5 \right \} 是序列 \left \{ a_1,a_2,a_3,a_4,a_5 \right \} 的一个子序列。

输入格式

第一行包含两个整数 n,m

第二行包含 n 个整数,表示 a_1,a_2,...,a_n

第三行包含 m 个整数,表示 b_1,b_2,...,b_n

输出格式

如果 a 序列是 b 序列的子序列,输出一行 Yes

否则,输出 No

数据范围

1\leq n\leq m\leq 10^5,
-10^9\leq a_i,b_i\leq 10^9

输入样例

3 5
1 3 5
1 2 3 4 5

输出样例

Yes

代码示例

#include <iostream>
using namespace std;const int N = 100010;int a[N], b[N];int main() {int n, m;cin >> n >> m;for (int i = 0; i < n; i++) cin >> a[i];for (int i = 0; i < m; i++) cin >> b[i];int i = 0, j = 0; while(i < n && j < m){if(a[i] == b[j]) i++;j++;}if(i == n) cout << "Yes" << endl;else cout << "No" << endl;
}

http://www.yidumall.com/news/3339.html

相关文章:

  • 长春手机网站360站长平台
  • 上海网站开发哪里好薇长沙网
  • 软件开发包含网站开发吗免费推广平台有哪些
  • 在网站上怎么做招聘信息做网络推广需要多少钱
  • app调用网站百度一下百度主页度
  • pk10网站怎么做百度网页版登录入口官网
  • 免费ai设计logo网站班级优化大师怎么加入班级
  • 买了个域名 如何自己做网站1个百度指数代表多少搜索
  • 武汉光谷网站建设chatgpt 网址
  • 商城网站设计公司怎么做关键词优化排名
  • 机械毕业设计代做网站网站优化设计公司
  • 如何做网站效果更好免费二级域名注册网站
  • 有哪些做PPT背景网站百度快照
  • 荆门公司做网站黑帽seo优化推广
  • 网站友情链接模板优化电脑的软件有哪些
  • 嘉兴手机模板建站优搜云seo
  • 网站开发的研究方法seo网站优化建议
  • 企业网站建设研究目的意义关键词快速排名不限行业
  • 做汽车微信广告视频网站有哪些一个新品牌怎样营销推广
  • 基于android的移动互联网开发win7系统优化大师
  • 深圳的网站四川聚顺成网络科技有限公司
  • 嘉兴网站搜索优化深圳网络营销推广
  • 网站建设如何开单阿里关键词排名查询
  • 网站建设费用计入什么会计科目百度搜索风云榜电视剧
  • 新乡市红旗区建设局网站学习软件
  • 网站程序复制流量精灵app
  • 昆明有多少做网站的公司济南seo全网营销
  • 做网站需要融资网上软文发稿平台
  • 做flash网站遇到函数seo搜索引擎优化策略
  • 做网站每年交服务费百度应用下载