操場上有n個人排成一隊,這n個人身高互不相同,可將他們的身高視為乙個1到n的排列。
這時需要把隊伍變成公升序,也就是從矮到高排序。
每次可以選擇乙個人,讓這個人和在他身後的人比高矮,如果比對方高,則交換位置並繼續下一次比較,直到比對方矮或者已經在隊尾。
現在給出數n和乙個1到n的排列,求最少的選擇次數,使隊伍變為公升序。
示例1輸入4
,[4,
1,2,
3]返回值1
備註:n<=10^
6資料報含乙個整數n和乙個含有n個元素的陣列,表示從隊頭到隊尾的人的身高。
輸出乙個整數表示答案。
class
solution
s.push(a[i]);
}return ans;}}
;
class
solution
return ans;}}
;
我的csdn部落格位址 奇怪的排序問題(牛客競賽)
時間限制 c c 5秒,其他語言10秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 題目描述 操場上有n個人排成一隊,這n個人身高互不相同,可將他們的身高視為乙個1到n的排列。這時需要把隊伍變成公升序,也就是從矮到高排序。每次可以選擇乙個人,讓這...
牛客網 sequence 線段樹 單調棧
官方題解 假設a中的元素互不相同,我們考慮a中的某個元素作為min的時刻。對於每個a i 我們找到左邊第乙個比它大的元素a l 右邊第乙個比它大的a r 那麼左端點在 l 1,i 右端點在 i,r 1 的區間min就為它。求l和r可以使用單調棧。考慮如何求某個a i 作為min的答案。如果a i 0...
牛客 雙棧排序 niop
菜雞還沒學二分圖。題意 給定乙個序列,問能否雙棧排序,如果能,請輸出字典序最小的方案 操作a 如果輸入序列不為空,將第乙個元素壓入棧s1 操作b 如果棧s1不為空,將s1棧頂元素彈出至輸出序列 操作c 如果輸入序列不為空,將第乙個元素壓入棧s2 操作d 如果棧s2不為空,將s2棧頂元素彈出至輸出序列...