題桿跟網上經典“電路布線”問題相同:在一塊電路板的上下兩端分別有n個接線柱。根據電路設計,要求用導線(i,C(i)),將上端接線柱i與下端接線柱C(i)相連,導線(i,C(i))稱為該電路板上的第i條連線。k(i)(1<=i<=n)是線路i與其右邊線路(即i<j)的交點的數量。很顯然,一個簡單的二重回圈即可通過C(i)算出k(i),如當C=[8,7,4,2,5,1,9,3,10,6]時,k=[7,6,3,1,2,0,2,0,1,0]。
我的問題是:如果通過k(i)反推出C(i)呢?Sartaj Sahni的《資料結構演算法與應用--C++語言描述》給出的回答是“for(int w=n;w>0;w--) L.Insert(k[w], w);”其中L是LinearList(簡單佇列)。答案正確,但并沒有給出這個演算法的邏輯,而這也是我想知道的。。。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/240198.html
標籤:數據結構與算法
上一篇:echarts 地圖背景色換成自己的圖片,我給地圖設定了透明色,但是給下面的背景圖不能重合
下一篇:演算法設計思路與演算法
