作者applebeing (苹果人)
看板Programming
标题[讨论] 排列组合的演算法解题
时间Mon Aug 31 14:46:23 2020
求职时线上测验的问题,有算出解答,但觉得应该有更好的解法,
向各位版友请教解题想法。
问题如下:
一个七位数的数字,从第七位到个位数的顺序开始比对。
若当前位数的值,不小於曾出现过的数的最大值,就记录起来。
请问纪录结果为四个数字的可能组合数有几组?
例:
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://webptt.com/cn.aspx?n=bbs/Programming/M.1598856385.A.8D2.html
1F:推 scott0002: 直觉 backtracking 剪枝 不过不知道是 114.137.75.101 12/18 14:03
2F:→ scott0002: 不是100%可行 114.137.75.101 12/18 14:03
3F:→ scott0002: 我看错题目了 114.137.75.101 12/18 14:04