牛客 奇怪的排序问题(单调栈/遍历)
生活随笔
收集整理的這篇文章主要介紹了
牛客 奇怪的排序问题(单调栈/遍历)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
鏈接:https://ac.nowcoder.com/acm/contest/10166/B
來(lái)源:牛客網(wǎng)
操場(chǎng)上有n個(gè)人排成一隊(duì),這n個(gè)人身高互不相同,可將他們的身高視為一個(gè)1到n的排列。
這時(shí)需要把隊(duì)伍變成升序,也就是從矮到高排序。
每次可以選擇一個(gè)人,讓這個(gè)人和在他身后的人比高矮,如果比對(duì)方高,則交換位置并繼續(xù)下一次比較,直到比對(duì)方矮或者已經(jīng)在隊(duì)尾。
現(xiàn)在給出數(shù)n和一個(gè)1到n的排列,求最少的選擇次數(shù),使隊(duì)伍變?yōu)?strong>升序。
示例1 輸入 4,[4,1,2,3] 返回值 1備注: n<=10^6 數(shù)據(jù)包含一個(gè)整數(shù)n和一個(gè)含有n個(gè)元素的數(shù)組,表示從隊(duì)頭到隊(duì)尾的人的身高。 輸出一個(gè)整數(shù)表示答案。2. 解題
- 單調(diào)棧,當(dāng)棧頂?shù)纳砀?比 當(dāng)前的大 ,需要移動(dòng)一次
- 直接反向遍歷,當(dāng)前身高比后面最小的大,就需要移動(dòng)一次
我的CSDN博客地址 https://michael.blog.csdn.net/
長(zhǎng)按或掃碼關(guān)注我的公眾號(hào)(Michael阿明),一起加油、一起學(xué)習(xí)進(jìn)步!
總結(jié)
以上是生活随笔為你收集整理的牛客 奇怪的排序问题(单调栈/遍历)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 牛客 XOR和(找规律)
- 下一篇: [Kesci] 预测分析 · 客户购买预