小编nat*_*n52的帖子

将数字减少到1的最小步骤数

给定任意数n和n上的三个运算:

  1. 加1
  2. 减去1
  3. 如果数字是偶数则除以2

我想找到上面的操作的最小数量,以减少n为1.我尝试过动态编程方法,也修复了BFS,但是n可能非常大(10 ^ 300)而且我不知道如何制作我的算法快点.贪婪的方法(如果偶数则除以2,如果是偶数则除1)也不能给出最佳结果.还有其他解决方案吗?

algorithm math dynamic-programming

25
推荐指数
2
解决办法
1万
查看次数

标签 统计

algorithm ×1

dynamic-programming ×1

math ×1