为什么一个数字变成 1,竟然难倒那么多程序员?——整数替换背后的算法思维
作者:Echo_Wish
很多算法题看起来像是在“玩数字游戏”。
给你一个整数,让它不断变化,最后变成 1。
听起来是不是很简单?
但是,当你真正写代码的时候,会发现:
简单的规则背后,藏着动态规划、贪心选择、记忆化搜索这些算法思想。
今天我们聊一道经典算法题:
Integer Replacement(整数替换)
看看一个数字从 n 变成 1 的过程中,到底隐藏了哪些算法智慧。
一、题目到底要求什么?
整数替换问题:
给定一个正整数 n。
每一步可以执行:
情况1:
如果 n 是偶数:
可以:
n = n / 2
例如:
8 → 4
情况2:
如果 n 是奇数:
可以:
n = n + 1
或者
n = n - 1
例如:
7 → 8
或
订阅专栏 解锁全文

182

被折叠的 条评论
为什么被折叠?



