排序子串行

2021-08-01 10:47:37 字數 819 閱讀 2567

題目描述:

牛牛定義排序子串行為乙個陣列中一段連續的子串行,並且這段子序列是非遞增或者非遞減排序的。牛牛有乙個長度為n的整數陣列a,他現在有乙個任務是把陣列a分為若干段排序子串行,牛牛想知道他最少可以把這個陣列分為幾段排序子串行.

如樣例所示,牛牛可以把陣列a劃分為[1,2,3]和[2,2,1]兩個排序子串行,至少需要劃分為2個排序子串行,所以輸出2 

輸入描述:

輸入的第一行為乙個正整數n(1 ≤ n ≤ 10^5)

第二行包括n個整數a_i(1 ≤ a_i ≤ 10^9),表示陣列a的每個數字。

輸出描述:

輸出乙個整數表示牛牛可以將a最少劃分為多少段排序子串行

輸入例子:

6

1 2 3 2 2 1

輸出例子:

2
分析:分成兩種情況,遞增區間與遞減區間。還有在判斷語句結束時有乙個變數跳動,即當前指標應向下移動一位。
程式:
#include #include#include#include#include#include#include#define ll long long

using namespace std;

int solve(ll a,int n)

int p=0;

int k=0;

while(k!=n)

if(a[k]=a[k+1])

k+=1;

p++;

// cout<>n)

int len=solve(a,n);

cout<

排序子串行

問題描述 將一段陣列分為若干個排序子串行,排序子串行就是非遞增或非遞減的排序序列,然後輸出至少可以分為幾個排序子串行。解決方法 輸入陣列之後,開始遍歷陣列,如果陣列滿足非遞增或者非遞減,就進入對應的條件判斷,然後此時如果i 1的元素依然滿足對應的非遞增或非遞減,就直接i 然後跳出之後進行count ...

排序子串行 全國模擬(三)

牛牛定義排序子串行為乙個陣列中一段連續的子串行,並且這段子序列是非遞增或者非遞減排序的。牛牛有乙個長度為n的整數陣列a,他現在有乙個任務是把陣列a分為若干段排序子串行,牛牛想知道他最少可以把這個陣列分為幾段排序子串行.如樣例所示,牛牛可以把陣列a劃分為 1,2,3 和 2,2,1 兩個排序子串行,至...

排序子串行 倒置字串

目錄概念筆記 位段 內聯inline oj程式設計 1 排序子串行 2 倒置字串 3 源 參考位址 位段的成員是int unsigned int signed int char等整型家族。由於結構體的記憶體對齊會對空間造成一定的浪費,因此才用位段來節省部分空間。在32位cpu上選擇預設對齊的情況下,...