【发布时间】:2021-07-15 11:52:13
【问题描述】:
问题: 键盘有 11 个按钮,对应从 0 到 9 的数字,还有一个称为 Add 的按钮。按下 0 到 9 中的任意一个按钮后,屏幕上会出现相应的数字。添加按钮将屏幕上显示的最后两位数字替换为取模 10 的总和。(请参阅示例测试以获得更清晰的信息)。如果当前屏幕上的数字少于两位,则按添加不会执行任何操作。
每个按钮都有与之相关的非负按下成本。按下“添加”按钮的成本始终为 0。给定按下每个按钮和目标电话号码的成本,找出使用一系列按钮按下将该号码输入电话屏幕的最小成本。
https://www.hackerearth.com/practice/algorithms/graphs/shortest-path-algorithms/practice-problems/algorithm/costly-phone-number-december-easy-easy-medium/ 这是我的方法, 我已将数字 0 到 9 视为节点,将边视为键入数字的成本,但我们还必须考虑取决于您之前输入的 2 个数字的特殊边,我已尝试跟踪最后访问的两个边缘和修改 Dijkstra 的算法,但无法用这种方法取得任何进展,我被卡住了,有什么建议吗??
社论中的代码只是使用嵌套的 for 循环来获得输入数字的最佳成本,然后将它们相加,但我想找到一种使用图表的方法
【问题讨论】:
-
添加您现有的方法/代码,以及您遇到的问题
-
抱歉,我添加了有关我尝试过的方法的详细信息。
标签: algorithm optimization data-structures graph shortest-path