排序子序列

2023-10-28

问题描述:将一段数组分为若干个排序子序列,排序子序列就是非递增或非递减的排序序列,然后输出至少可以分为几个排序子序列。
解决方法:输入数组之后,开始遍历数组,如果数组满足非递增或者非递减,就进入对应的条件判断,然后此时如果i+1的元素依然满足对应的非递增或非递减,就直接i++,然后跳出之后进行count++,这就是一个排序子序列,如果相等的话就直接i++,这样执行下去,直到遍历结束,输出此时的count。

#include <iostream>
#include <vector>
using namespace std;


int main()
{
	int n;
	cin >> n;

	vector<int> a;
	a.resize(n + 1);
	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++;
		}
	}
	cout << count << endl;
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

排序子序列 的相关文章

  • C++之:struct和class的区别

    一 数据封装和成员访问权限 1 结构体 struct 在struct中 默认的成员访问权限是public 这意味着 在结构体外部 我们可以直接访问其成员变量和成员函数 下面是一个简单的例子 struct Point int x y Poin
  • Winform项目之学生成绩管理系统设计与实现(三)

    1 班级管理 private ClassService classService new ClassService public ListClassForm InitializeComponent this dgvListClass Row
  • C语言深入学习--checklist7:链接、运行时数据结构、申明

    1 你知道段的概念吗 段是二进制文件中的简单区域 里面保存了某种特定的类型 如符号表条目 相关的所有信息 1 可执行程序分为几个段 每个段保存什么内容 可执行程序分为三个段 BSS段 数据段 文本段 BSS段 Block Started b
  • ##顺序表 编码##

    ifndef LIST H define LIST H class List public List int size List 析构函数 void ClearList 清空线性表 bool ListEmpty 判断线性表是否为空 int
  • ASCII Unicode, UTF8 的关系,string和wstring转换

    目录 1 三大编码由来和转换 2 三大编码在计算机中应用 3 char string 和wchar t wstring 转换 写这篇文章遇到的的问题是c 操作正则的时候 遇到中文出现匹配失败 以及visual studio中中文乱码问题 当
  • ROS下进行人脸识别并输出人脸坐标位置

    功能包下载链接 https download csdn net download qq 42145185 12265062 启动命令 roslaunch face tracker pkg start tracking launch 核心检测
  • STL——set容器、map容器

    初识STL set容器 multiset容器 set容器 构造和赋值 set容器 大小和交换 set容器 插入和删除 set容器的查找和统计 set和multiset的区别 set的相关操作源码 multiset的相关操作源码 pair使用
  • MySQL connector/C++ 连接mysql效率低下解决

    这个问题 说解决也不算是被解决了 只能是让数据库插入的时候不会有像直接插入一样有那么多的问题了 我的解决方法是 开启mysql的事务 开始我也不知道是不是我的mysql配置优化的问题 WAMP统一安装 无限默认下一步的 在用PHP测试的时候
  • 关于C++对象模型(下)

    下篇主要讨论调用成员函数 访问成员变量的开销 及其特殊成员函数 数组 异常处理的讨论 这篇文章中出现的对象定义都出现在上篇中 全文在这里下载 文章内容转自 http tb blog csdn net TrackBack aspx PostI
  • C++ 类大小分析

    以下测试代码的运行环境 Ubuntu 16 04 4 LTS gcc version 4 8 5 x64 空类 单一继承的空类 多重继承的空类所占空间大小为 1 字节 实例在内存中都有一个独一无二的地址 为了达到这个目的 编译器往往会给一个
  • C++函数指针应用例子

    C 函数指针应用例子 前段时间在写代码的时候 想让程序根据一个函数运行出的结果 从四个函数中自动选择一个函数运行 这四个函数我们就取名叫 value 0 value 1 value 2 value 3 假设value 0是这样的 int v
  • C++学习(四六九)LRU Least Recently Used算法

    LRU是Least Recently Used的缩写 即最近最少使用 最近一段时间最少使用 是一种常用的页面置换算法 选择最近最久未使用的页面予以淘汰 该算法赋予每个页面一个访问字段 用来记录一个页面自上次被访问以来所经历的时间 t 当须淘
  • C#各种结束进程的方法详细介绍

    转自http www cnblogs com zjoch p 3654940 html Process类的CloseMainWindow Kill Close Process CloseMainWindow是GUI程序的最友好结束方式 从名
  • C++面试题目集合(持续跟新)

    与我前面写的C语言进阶知识点遥相呼应 这才是C 面试 网上的面试题有些太简单了 C 面试题目最多集中在对象的内存模型 记住了 如果用c c 内存都不清楚 还写个屁的程序 1 C 的虚函数是怎样实现的 C 的虚函数使用了一个虚函数表来存放了每
  • C++实现String类

    C 实现String类 还没有完成 待继续 有以下注意的点 1 赋值操作符返回的是一个MyString 而重载的 返回的是一个MyString 其中的原因参看 effective c 主要是返回引用的时候 必须返回必须在此函数之前存在的引用
  • STL之set常见用法详解

    摘自胡凡的 算法笔记 仅作记录用 前言 set是一个内部自动有序且不含重复元素的容器 如果要使用set 需要添加set头文件 即 include
  • vector模拟实现

    个人简介 作者简介 大家好 我是菀枯 支持我 点赞 收藏 留言 格言 不要在低谷沉沦自己 不要在高峰上放弃努力 1 前言 大家在学习C 的时候一定会学到STL 标准模板库 这是C 标准库中最重要的组成部分 它包含了常用的数据结构和算法 今天
  • 对于单向链表的排序与去重

    include bits stdc h using namespace std struct node int num node next class Chain public Chain head tail new node void G
  • c++使用继承类实现异常处理

    sales h pragma once include
  • acwing算法提高之动态规划--数字三角形模型

    目录 1 基础知识 2 模板 3 工程化 1 基础知识 暂无 2 模板 暂无 3 工程化 题目1 摘花生 解题思路 DP 状态定义 f i j 从 1 1 走到 i j 所摘花生总和 状态转移 有 从上方走到 i j 有 f i 1 j w

随机推荐

  • day05:js基础——函数、作用域问题

    js函数 作用域问题 概述 1 函数 1 1 函数概念 函数作用 函数构成 1 2 定义函数 调用函数 1 3 函数参数 1 4 函数返回值 1 5 js中的特殊函数 1 6 函数demo 2 变量作用域 3 js中的预解析 3 1 声明式
  • 用c语言制作一个简单的答题系统

    首先制作一个答题系统需要有一个题库 其次要有完整的出题系统 然后要能够进行答题和判断答案对错 最后就是统计答案正确率了 实现创建一个题库并不难 仅需要使用数组保存题目与标准答案就行了 使用strcpy函数将题目分别输入进题库 部分代码如下
  • Web自动化测试 —— 测试环境搭建 (Selenium+Python)及视频操作

    一 什么样项目适合做web自动化 1 软件需求不会频繁的变更 2 项目周期比较长 3 自动化的脚本能够重复利用 介入点 第一个版本的核心功能确认以后 系统测试 自动化的实施过程 1 可行性分析 2 框架的选择 selenum rf 框架的搭
  • 使用 maven 自动将源码打包并发布

    在pom xml中添加maven source plugin插件 maven生成 jar的同时生成 sources包
  • 用分布式锁和redis实现原子性递增,解决编号重复问题

    import com baomidou mybatisplus core conditions query QueryWrapper import lombok extern slf4j Slf4j import org apache co
  • C语言-二维数组做函数的参数

    文章目录 1 引例 2 观点1 这种使用方法是错误的 3 观点2 根本不需要这么做 4 二维数组做函数参数的方法 4 1 方法1 4 2 方法2 4 3 方法3 5 与Java的不同 1 引例 下面的程序很简单 定义了一个PrintMatr
  • Talib技术因子详解(一)

    talib安装方式 pip install Ta lib Tushare数据获取请参考 金融量化分析基础环境搭建 数据获取代码 import tushare as ts ts set token Tushare的token pro ts p
  • 如何解决从git上下载很慢的问题

    在国内从git上面下载代码的速度峰值通常都是20kB s 这种速度对于那些小项目还好 而对于大一些的并且带有很多子模块的项目来讲就跟耽误时间 虽然有很多提速的方法 但是实际用起来并不稳定 这里提供一套新的方法 下载速度可以至少达到 2MB
  • [1214]基于Python实现视频去重

    文章目录 基于Python实现视频去重 基本原理 实现方法 其它视频去重code 基于Python实现视频去重 基本原理 一款基于Python语言的视频去重复程序 它可以根据视频的特征参数 将重复的视频剔除 以减少视频的存储空间 它的基本原
  • MySQL之字符串函数

    字符串是由零个或多个字符组成的有限序列 一般记为 s a1a2 an n gt 0 通常以串的整体作为操作对象 如 在串中查找某个子串 求取一个子串 在串的某个位置上插入一个子串以及删除一个子串等 假如结果的长度大于 max allowed
  • OKL4 的故事

    转自 弯曲评论 编者注 Gernot 的这篇 blog 介绍了一些 NICTA 和 OK lab 的故事 关于 NICTA 和 OK lab 的来历 读者如果感兴趣 可以阅读我以前写的这篇文章General Dynamics 收购 Open
  • java.util.ConcurrentModificationException

    增强for底层用了迭代器 会导致遍历的时候修改集合中的元素出现java util ConcurrentModificationException 这是因为ArrayList底层维护了一个modCount用于记录list集合修改的次数 每操作
  • 揭示常见的重构误区

    作者 Danijel Arsenovski译者 张逸 公正地说 NET社区对于重构技术的研究起步太晚 直到今天 Net开发的旗舰产品Visual Studio仍然无法在C 中突破重构的界限 http www martinfowler com
  • java一朵玫瑰花代码

    这是一个简单的 Java 程序 画一朵玫瑰花 import java awt import java awt geom import javax swing public class Rose extends JFrame public R
  • C++动态库制作

    简介 概念 Linux系统 Windows系统中都有静态库 动态库 静态库是链接阶段与某程序指令链接到一块 打包为一个整体 而动态库是程序执行过程中动态装载到内存中的 链接时不打包 命名规则 Linux 静态库 libxxx a 动态库 l
  • [数据分析]-目标检测python删除xml文件中指定name的object类别

    1 问题描述 在整理数据集的时候 由于部分数据集来自网络 其一张图片标注了多个类别 而我们只想使用其中的某些类别 如果不去管那些无效类别 在训练时可能会出错 这就需要我们读取xml文件 根据指定的name名称 删除掉无效的object标注
  • android 4.4中的流媒体渲染过程

    第一次写blog 只是为了记下学习的过程 android中东西很多 架构和流程都很复杂 经常发现以前学习过的很多东西 即使当时看明白没多久就忘记了 只能重新拾起再看 于是想起blog这个东东 写下来总不会忘记 也和别人一起共享 以下基于an
  • 多种马尔可夫链预测方法

    一 基于绝对分布的马尔可夫链预测 步骤1 对历史数据进行分组 步骤2 确定观测值的状态 写出频数矩阵 nij i j E和一步转移概率矩阵 fij i j E 其中fij nij n 1 其中n为样本容量 当n 时 可用频数估计概率 从而得
  • tensorflow2.0(三)----循环神经网络(RNN)

    class DataLoader def init self path tf keras utils get file nietzsche txt origin http s3 amazonaws com text data with op
  • 排序子序列

    问题描述 将一段数组分为若干个排序子序列 排序子序列就是非递增或非递减的排序序列 然后输出至少可以分为几个排序子序列 解决方法 输入数组之后 开始遍历数组 如果数组满足非递增或者非递减 就进入对应的条件判断 然后此时如果i 1的元素依然满足