給定乙個1-n的排列a1, a2, ... an,每次操作小hi可以選擇乙個數,把它放到陣列的最左邊。
請計算小hi最少進行幾次操作就能使得新陣列是遞增排列的。
input
第一行包含乙個整數n。
第二行包含n個兩兩不同整數a1, a2, ... an。(1 <= ai
<= n)
對於60%的資料 1 <= n <= 20
對於100%的資料 1 <= n <= 100000
output
乙個整數代表答案
sample input
52 3 1 4 5
sample output
1
利用貪心思想,如果每個數都移動,n個數最多移動n次就形成乙個遞增序列;如果最後乙個數是最大的就不需要移動,第n-1個是倒數第二大的也不需要動,只有當第i個數不是i時才移動;
#include #include #include #include #include using namespace std;
vectorvec;
int main()
}cout << maxx << endl;
return 0;
}
hihoCoder 1523 陣列重排2 貪心
題意 給定乙個1 n的排列a1,a2,an,每次操作小hi可以選擇乙個數,把它放到陣列的最左邊。請計算小hi最少進行幾次操作就能使得新陣列是遞增排列的。思路 最後的序列是遞增的,那麼 i j 必定滿足po s i s j pos i 表示數字 i 最終的位置。如果當前的po s i po s i 1...
shuffle 重排陣列
在一些應用中,我們可能希望按不同的方式對陣列進行排序。函式shuffle 將陣列進行隨機排序。函式array reverse 則可以將原陣列反向排序。bob想讓其 首頁上的產品能夠反應出公司的特色,他擁有很多產品,但希望能夠每次從中隨機抽取出三種產品顯示在首頁上。為了不至於讓多次登入 的訪問者感到厭...
陣列奇偶重排
2019 04 06 題目描述 輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的 後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。include include using namespace std void reordera...