華為OD機(jī)試-- 高矮個(gè)子排隊(duì)

題目
現(xiàn)在有一隊(duì)小朋友,他們高矮不同,,我們以正整數(shù)數(shù)組表示這一隊(duì)小朋友的身高,如數(shù)組{5,3,1,2,3}。
我們現(xiàn)在希望小朋友排隊(duì),以“高”“矮”“高”“矮”順序排列,每一個(gè)“高”位置的小朋友要比相鄰的位置高或者相等;每一個(gè)“矮”位置的小朋友要比相鄰的位置矮或者相等;要求小朋友們移動(dòng)的距離和最小,第一個(gè)從“高”位開始排,輸出最小移動(dòng)距離即可。
移動(dòng)距離的定義如下所示:第二位小朋友移到第三位小朋友后面,移動(dòng)距離為1,若移動(dòng)到第四位小朋友后面,移動(dòng)距離為2。
輸入描述:
排序前的小朋友,以英文空格的正整數(shù):4 3 5 7 8
小朋友<100個(gè)
輸出描述:
排序后的小朋友,以英文空格分割的正整數(shù):4 3 7 5 8
輸出結(jié)果為最小移動(dòng)距離,只有5和7交換了位置,移動(dòng)距離都是1
示例:
輸入:
4 1 3 5 2
輸出:
4 1 5 2 3
輸入:
1 1 1 1 1
輸出:
1 1 1 1 1
說明:
相鄰位置可以相等
輸入:
xxx
輸出:
[]
說明:
出現(xiàn)非法參數(shù)情況,返回空數(shù)組
Java 實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/128042936
Python實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/130654156
C++ 實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/127117934
JavaScript實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/130654173
C實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/130654194