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++;
		}
	}
}
相关推荐
网域小星球8 分钟前
C 语言从 0 入门(二十一)|typedef 类型重定义:简化复杂类型,代码更清爽
c语言·算法·类型重定义·结构体简化·函数指针简化
XWalnut12 分钟前
LeetCode刷题 day10
数据结构·算法·leetcode
史迪仔011216 分钟前
[QML] 交互事件深度解析:鼠标、键盘、拖拽
前端·c++·qt
米啦啦.29 分钟前
类继承、子类拷贝构造函数、赋值运算符重载函数、多继承(虚继承)
c++·多继承·类继承·赋值运算符重载
weixin_4460235634 分钟前
c语言第一个编译器是用什么语言写的?自举原理
c语言·编译器·迭代优化·无代码开发平台·自举原理
swift1922136 分钟前
Qt多语言问题 —— 静态成员变量
开发语言·c++·qt
用户8055336980343 分钟前
现代Qt开发教程(新手篇)1.4——容器
c++·qt
programhelp_1 小时前
Amazon OA 2026 高频题型拆解 + 速通攻略
数据结构·算法
ulias2121 小时前
Linux中的开发工具
linux·运维·服务器·开发语言·c++·windows
脑神1 小时前
C/C++语言编译器
c语言