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