https://segmentfault.com/q/10... 这个问题中有四种对4位整型数组进行排列组合的算法,一个一个按照运行顺序写下来觉得很有意思,我肯定直接写不出来,想问一下算法界的大神们,这种算法大概是什么水平的?如果是很简单的那种,我大概真的要去补一下了...另外,除了死记硬背,这么刁钻的设计是怎么想出来的...
巴扎黑2017-04-18 10:50:09
全排列的過程可以當成樹的遍歷過程,每個葉子節點就是一種排列,只不過要注意的是每個子樹的邊不能和父節點的邊重複。
樹的遍歷過程好辦,或遞歸或用棧或隊列甚至另外設定個保存狀態的數組都行,子樹的邊不能和父節點邊重複的問題也好辦,遍歷子樹的時候只遍歷available的,並且遍歷後做標記就可以了。
我覺得這個問題轉換成樹就好辦了,實現各種各樣都可以吧。