【错题集-编程题】排序子序列(模拟)

简介: 【错题集-编程题】排序子序列(模拟)

牛客对应题目链接:排序子序列_牛客笔试题_牛客网 (nowcoder.com)


一、分析题目

根据题意,用指针模拟即可。


二、代码

//知道学习的代码
#include <iostream>
using namespace std;
 
const int N = 1e5 + 10;
 
int n;
int arr[N];
 
int main()
{
    cin >> n;
    for(int i = 0; i < n; i++) cin >> arr[i];
 
    int ret = 0, i = 0;
    while(i < n)
    {
        if(i == n - 1)
        {
            ret++;
            break;
        }
 
        if(arr[i] < arr[i + 1])
        {
            while(i + 1 < n && arr[i] <= arr[i + 1]) i++;
            ret++;
        }
        else if(arr[i] > arr[i + 1])
        {
            while(i + 1 < n && arr[i] >= arr[i + 1]) i++;
            ret++;
        }
        else
        {
            while(i + 1 < n && arr[i] == arr[i + 1]) i++;
        }
        i++;
    }
 
    cout << ret << endl;
 
    return 0;
}

三、反思与改进

这是一道纯模拟题,需要考虑多种情况。这里用一个指针进行前后比较即可,不需要用到双指针。可以将数组看作成一张折线图(直观),需要考虑最开始如果是平直的线要如何处理,以及最后如果一个点自成一组该如何处理,主要就是考虑好边界情况。


相关文章
|
安全 Java 编译器
第十一章 Golang面向对象编程(下)
第十一章 Golang面向对象编程(下)
118 2
|
网络协议 流计算
【技术分享】Ethernet LAN
4月更文挑战第8天
288 1
|
7月前
|
人工智能 大数据 物联网
申报开启|2025年阿里云协同育人项目申报指南
阿里云启动2025年协同育人项目申报,支持高校教学内容和课程体系改革及实践基地建设。项目涵盖人工智能通识教育、AIGC设计等领域,提供资金、云计算资源和技术培训等支持。申报截止至2025年2月28日,面向全国本科高校教师,旨在深化产教融合,共育创新人才。详情及流程见官网。
|
测试技术 Shell Go
译 | Prefer table driven tests(一)
译 | Prefer table driven tests
175 0
|
资源调度 API 计算机视觉
【OpenCV】—非线性滤波:中值滤波、双边滤波
【OpenCV】—非线性滤波:中值滤波、双边滤波
263 3
|
机器学习/深度学习 人工智能 Java
软件开发者必读!2024年30大趋势提前曝光!
软件是科技行业的基础。从智能手机到复杂的企业系统,软件是推动这些技术的核心。在探索数字时代的过程中,了解软件开发的趋势非常重要。人工智能、机器学习、物联网等技术的快速发展对软件开发行业产生了巨大影响。本文旨在通过30个数据汇总,帮助读者们初步了解2024年软件开发领域的新趋势。
|
存储 监控 算法
大师学SwiftUI第12章 - 手势 Part 1
手势是用户在屏幕上执行的动作,如点击、滑动或捏合。这些手势很难识别,因为屏幕上只能返回手指的位置。为此,Apple提供了手势识别器。手势识别器完成所有识别手势所需的计算。所以我们不用处理众多的事件和值,只需在等待系统监测到复杂手势时发送通知并进行相应处理即可。
143 0
|
自然语言处理 C语言 C++
编译原理 实验二:词法分析器的手动实现(基于状态机的词法分析器)
编译原理 实验二:词法分析器的手动实现(基于状态机的词法分析器)
1358 0
编译原理 实验二:词法分析器的手动实现(基于状态机的词法分析器)
|
Oracle 关系型数据库 应用服务中间件
JIRA的初探
JIRA的初探
152 0
|
SQL 关系型数据库 MySQL
Mysql中(DML)数据操作
Mysql中(DML)数据操作

热门文章

最新文章