這題一開(kāi)始我想成了逆序,然后寫(xiě)了之后才發(fā)現(xiàn)不對(duì)。于是就在想,后來(lái)我想到了下面的方法
首先求得1的個(gè)數(shù)k1和2的個(gè)數(shù)k2。然后我們對(duì)前k1個(gè)數(shù)進(jìn)行操作,如果是排序好了的話,這前k1個(gè)數(shù)應(yīng)該是1,如果是2的話,那么我們從第k2+1個(gè)數(shù)開(kāi)始找1,找到第一個(gè)1后交換兩個(gè)數(shù)(這樣交換的次數(shù)是最少的)。如果是3的話,就從最后一個(gè)數(shù)往前找第一個(gè)1,然后交換兩個(gè)數(shù)。同樣這樣交換的次數(shù)是最少的。對(duì)1操作完了之后,我們?cè)趯?duì)接下來(lái)的k2個(gè)數(shù)進(jìn)行操作,如果不是2的話,就一定是3了,一定要交換。這樣進(jìn)行操作之后對(duì)后面的數(shù)就不用操作了,因?yàn)橐呀?jīng)是排好序了的。
不過(guò)官方的我還沒(méi)看貼下官方的報(bào)告吧
官方報(bào)告