[討論] 排列組合的演算法解題

看板Programming作者 (蘋果人)時間4年前 (2020/08/31 14:46), 編輯推噓1(102)
留言3則, 1人參與, 4年前最新討論串1/7 (看更多)
求職時線上測驗的問題,有算出解答,但覺得應該有更好的解法, 向各位版友請教解題想法。 問題如下: 一個七位數的數字,從第七位到個位數的順序開始比對。 若當前位數的值,不小於曾出現過的數的最大值,就記錄起來。 請問紀錄結果為四個數字的可能組合數有幾組? 例: 2334849 - 由左至右 第一位數 2 加入紀錄 第二位數 3 大於等於2,加入紀錄 第三位數 3 大於等於3,加入紀錄 第四位數 4 大於等於3,加入紀錄 第五位數 8 大於等於4,加入紀錄 第六位數 4 不紀錄 第七位數 9 大於等於8,加入紀錄 紀錄結果為 6 6429748 - 紀錄 69 (2個數) 4629889 - 紀錄 4699(4個數) 各位數可以為 0,例如 0001234、0007899 也符合要求。 我用迴圈跑 1~一千萬涵蓋七位數,每個數字都檢查紀錄結果,得出組數。 跑了五分多鐘,很笨也很沒有效率。 想請問是否有更效率的解題方式? 請大家指教,感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.121.223.216 (日本) ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1598856385.A.8D2.html

12/18 14:03, 4年前 , 1F
直覺 backtracking 剪枝 不過不知道是
12/18 14:03, 1F

12/18 14:03, 4年前 , 2F
不是100%可行
12/18 14:03, 2F

12/18 14:04, 4年前 , 3F
我看錯題目了
12/18 14:04, 3F
文章代碼(AID): #1VJ9p1ZI (Programming)
討論串 (同標題文章)
文章代碼(AID): #1VJ9p1ZI (Programming)