牛牛定義排序子串行為乙個陣列中一段連續的子串行,並且這段子序列是非遞增或者非遞減排序的。
牛牛有乙個長度為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]畫在座標圖上就非常明朗,問題就轉換為查詢波峰與波谷的個數了。
情況一123221:1 2 3
是乙個遞增序列,也可以認為是乙個非遞減序列,2 2 1
是乙個非遞增序列
情況二1323
:需要注意這裡如果算波峰和波谷有2
個,但是要注意,乙個排序子串行至少需要有兩個數構成,所以這裡的的排序子串行不是3個,是兩個:1 3
和2 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 ...