C/C++好题分享--代码题

2-1排序子序列

cpp 复制代码
int main()
{
	int n;
	cin >> n;
	// 注意这里多给了一个值,是处理越界的情况的比较,具体参考上面的解题思路
	vector<int> a;
	a.resize(n + 1);//这里有个坑,这个题越界了牛客测不出来,给n,并且不写a[n] = 0;不会报错,但是最好写上
	a[n] = 0;
	//读入数组
	int i = 0;
	for (i = 0; i < n; ++i)
		cin >> a[i];
	i = 0;
	int count = 0;
	while (i < n)
	{
		// 非递减子序列
		if (a[i] < a[i + 1])
		{
			while (i < n && a[i] <= a[i + 1])++i;
			count++;
			i++;
		}
		else if (a[i] == a[i + 1])++i;
		else // 非递增子序列
		{
			while (i < n && a[i] >= a[i + 1])++i;
			count++;
			i++;
		}
	}
}
相关推荐
优雅的潮叭2 小时前
c++ 学习笔记之 shared_ptr
c++·笔记·学习
多米Domi0112 小时前
0x3f第33天复习 (16;45-18:00)
数据结构·python·算法·leetcode·链表
SunkingYang2 小时前
QT中使用Lambda表达式作为槽函数用法,以及捕获列表和参数列表用法与区别
c++·qt·用法·lambda表达式·捕获列表·槽函数·参数列表
微露清风3 小时前
系统性学习C++-第二十二讲-C++11
java·c++·学习
罗湖老棍子3 小时前
【例4-11】最短网络(agrinet)(信息学奥赛一本通- P1350)
算法·图论·kruskal·prim
方圆工作室3 小时前
【C语言图形学】用*号绘制完美圆的三种算法详解与实现【AI】
c语言·开发语言·算法
Lips6113 小时前
2026.1.16力扣刷题
数据结构·算法·leetcode
代码村新手4 小时前
C++-类和对象(中)
java·开发语言·c++
kylezhao20194 小时前
C# 文件的输入与输出(I/O)详解
java·算法·c#
CodeByV4 小时前
【算法题】堆
算法