#55420: next_permutation與解答


Ixcy (Ixcy)


c++本身就有這個函式了

簡單來講,從最右邊開始找到一個相鄰非逆序對,將其靠左元素(L)與其右側大於它的最小元素(R)交換,並使(L, R]區間元素翻轉

1 4 6 2 5 3

這裡找到了(2, 5),選擇L為2的位置

因此,R為3的位置,接著交換

1 4 6 3 5 2

最後翻轉(L, R]區間

1 4 6 3 2 5

我們就完成了next_permutation的實現了

解答放在本題討論