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

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

牛客对应题目链接:排序子序列_牛客笔试题_牛客网 (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;
}

三、反思与改进

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


相关文章
|
7月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 查找整数
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 查找整数
52 0
|
6月前
|
人工智能 算法 搜索推荐
蓝桥杯宝藏排序题目算法(冒泡、选择、插入)
以下是内容的摘要: 本文介绍了三种排序算法:冒泡排序、选择排序和插入排序。冒泡排序通过不断交换相邻的逆序元素逐步排序,最坏情况下需要 O(n^2) 次比较。选择排序在每轮中找到剩余部分的最小元素并放到已排序序列的末尾,同样具有 O(n^2) 时间复杂度。插入排序则是将每个元素插入到已排序序列的正确位置,时间复杂度也是 O(n^2),但空间复杂度为 O(1)。
|
7月前
【错题集-编程题】数组中的最长连续子序列(排序 + 模拟)
【错题集-编程题】数组中的最长连续子序列(排序 + 模拟)
|
7月前
【错题集-编程题】重排字符串(贪心 + 构造)
【错题集-编程题】重排字符串(贪心 + 构造)
|
7月前
|
C语言
|
算法
算法排序问题。每种排序代表着没中思考问题的方式。我们学习了选择排序,冒泡排序,归并排序。让我们去回顾回顾吧。重在思想的领悟。
算法排序问题。每种排序代表着没中思考问题的方式。我们学习了选择排序,冒泡排序,归并排序。让我们去回顾回顾吧。重在思想的领悟。
86 0
算法排序问题。每种排序代表着没中思考问题的方式。我们学习了选择排序,冒泡排序,归并排序。让我们去回顾回顾吧。重在思想的领悟。
|
算法 索引
<代码随想录二刷>二分查找 | 双指针 | 滑动窗口 | 枚举模拟(一)
<代码随想录二刷>二分查找 | 双指针 | 滑动窗口 | 枚举模拟
<代码随想录二刷>二分查找 | 双指针 | 滑动窗口 | 枚举模拟(一)
|
机器学习/深度学习
<代码随想录二刷>二分查找 | 双指针 | 滑动窗口 | 枚举模拟(四)
<代码随想录二刷>二分查找 | 双指针 | 滑动窗口 | 枚举模拟
<代码随想录二刷>二分查找 | 双指针 | 滑动窗口 | 枚举模拟(四)
|
人工智能
<代码随想录二刷>二分查找 | 双指针 | 滑动窗口 | 枚举模拟(二)
<代码随想录二刷>二分查找 | 双指针 | 滑动窗口 | 枚举模拟
<代码随想录二刷>二分查找 | 双指针 | 滑动窗口 | 枚举模拟(二)
|
存储 算法
<代码随想录二刷>二分查找 | 双指针 | 滑动窗口 | 枚举模拟(三)
<代码随想录二刷>二分查找 | 双指针 | 滑动窗口 | 枚举模拟
<代码随想录二刷>二分查找 | 双指针 | 滑动窗口 | 枚举模拟(三)