解題思路:
由于階乘的特性,(n-1)!代表了有多少個n開頭的元素,我們用k/(n-1)!之后取余數,可以不斷縮小求解空間。最后確定所求的元素到底是什么。不過數據要嚴格有序。實現代碼如下,主要是list remove刪除原列表中對應位置的元素,通過取余數并且遞歸求(n-1)的階乘來縮小搜索的范圍。元素插入列表是按照大小順序的。
簡單來看,只有兩步:
1. 通過k/(n-1)!來確定到底當前的位數是哪個數字
2. 通過k=k%(n-1)來確定下一輪的被除數k是多少
第60題 找規律
解題思路:
由于階乘的特性,(n-1)!代表了有多少個n開頭的元素,我們用k/(n-1)!之后取余數,可以不斷縮小求解空間。最后確定所求的元素到底是什么。不過數據要嚴格有序。實現代碼如下,主要是list remove刪除原列表中對應位置的元素,通過取余數并且遞歸求(n-1)的階乘來縮小搜索的范圍。元素插入列表是按照大小順序的。
簡單來看,只有兩步:
1. 通過k/(n-1)!來確定到底當前的位數是哪個數字
2. 通過k=k%(n-1)來確定下一輪的被除數k是多少