C 100448 排序子串行

2021-09-23 18:52:20 字數 1123 閱讀 9760

牛牛定義排序子串行為乙個陣列中一段連續的子串行,並且這段子序列是非遞增或者非遞減排序的。

牛牛有乙個長度為n的整數陣列a,他現在有乙個任務是把陣列a分為若干段排序子串行,牛牛想知道他最少可以把這個陣列分為幾段排序子串行.

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

示例1:

本題要求解的是排序子串行,排序子串行為非遞增或者非遞減,很多同學在這個非遞增、非遞減問題上很糾結,注意:非遞減就是a[i]<=a[i+1],遞減就是a[i]>a[i+1],非遞增就是a[i]>=a[i+1],遞增就是a[i]畫在座標圖上就非常明朗,問題就轉換為查詢波峰與波谷的個數了。

情況一1232211 2 3是乙個遞增序列,也可以認為是乙個非遞減序列,2 2 1是乙個非遞增序列

情況二1323:需要注意這裡如果算波峰和波谷有2個,但是要注意,乙個排序子串行至少需要有兩個數構成,所以這裡的的排序子串行不是3個,是兩個:1 32 3

#include

#include

using namespace std;

int main()

} cout<}

#include 

using namespace std;

#define n

100001

bool ischange

(int previous, int current, int next)

return

false;}

int main()

else

else}}

cout << ans << endl;

}return0;

}

c 程式設計練習 033 排序,又見排序

北大程式設計與演算法 三 測驗題彙總 2020春季 自己編寫乙個能對任何型別的陣列進行排序的mysort函式模版。只能寫乙個mysort模板,不能寫mysort函式!include using namespace std bool greater2 int n1,int n2 bool greate...

C 模板函式 007 排序,又見排序

描述 自己編寫乙個能對任何型別的陣列進行排序的mysort函式模版。只能寫乙個mysort模板,不能寫mysort函式!include using namespace std bool greater2 int n1,int n2 bool greater1 int n1,int n2 bool g...

C語言訓練 1196 排序問題

problem description 輸入10個整數,將它們從小到大排序後輸出,並給出現在每個元素在原來序列中的位置。input 輸入資料有一行,包含10個整數,用空格分開。output 輸出資料有兩行,第一行為排序後的序列,第二行為排序後各個元素在原來序列中的位置。sample input 1 ...