佇列最小修改 京東2019春招京東開發類試題

2021-10-03 14:15:19 字數 508 閱讀 2770

已知乙個奇怪的佇列,這個佇列中有n個數,初始狀態時,順序是1,2,3,4,…n,是1-n按順序排列。這個佇列只支援一種操作,就是把佇列中的第i號元素提前到隊首(1第一行是乙個整數n(1<=n<=10^5),表示序列中數字的數量。 接下來一行有n個數,是1-n的乙個全排列。數字之間用空格隔開。

輸出僅包含乙個數字,表示至少操作了幾次。輸入5

5 2 1 3 4

輸出這個題目的其實本質是看有多少個數打破了原來的順序,像樣例中的一樣,5和2打破了之前的順序,之前的順序是從後往前依次減小。因此,一旦乙個不符合條件那麼就意味著,從這裡開始到序列的開頭都進行了操作,所以我們要計算操作的次數,實際上用總的次數 - 不變的次數,注意總的次數是n-1(n是數字的個數),因為兩個數只有一種操作。

c++**如下:

#include

using

namespace std;

intmain()

cout

}

京東 2019校招筆試 對比

現有n個物品,每個物品有三個引數 ai bi ci 定義i物品不合格品的依據是 若存在物品 j 且aj ai bj bi cj ci,則稱i物品為不合格品。現給出n個物品的a,b,c引數,請你求出不合格品的數量。第一行包含乙個整數n 1 n 500000 表示物品的數量。接下來有n行,每行有三個整數...

個人筆經2019校招京東C

下面有關值型別和引用型別描述正確的是 正確答案 a b c 你的答案 a b c d 錯誤 值型別的變數賦值只是進行資料複製,建立乙個同值的新物件,而引用型別變數賦值,僅僅是把物件的引用的指標賦值給變數,使它們共用乙個記憶體位址。值型別資料是在棧上分配記憶體空間,它的變數直接包含變數的例項,使用效率...

2019京東校招筆試題 合唱隊形

合唱隊的n名學生站成一排且從左到右編號為1到n nn,其中編號為i的學生身高為h ih i hi 現在將這些學生分為若干組 同一組的學生編號連續 並且讓每組學生從左到右按照身高從低到高排序,使得最後所有學生同樣滿足從左到右身高從低到高 中間位置可以相等 那麼最多能將這些學生分成多少組呢?利用輔助空間...