本文主要是介绍Java中等题-整数替换(力扣),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给定一个正整数 n
,你可以做如下操作:
- 如果
n
是偶数,则用n / 2
替换n
。 - 如果
n
是奇数,则可以用n + 1
或n - 1
替换n
。
返回 n
变为 1
所需的 最小替换次数 。
示例 1:
输入:n = 8 输出:3 解释:8 -> 4 -> 2 -> 1
示例 2:
输入:n = 7 输出:4 解释:7 -> 8 -> 4 -> 2 -> 1 或 7 -> 6 -> 3 -> 2 -> 1
class Solution {public int integerReplacement(int n) {if (n == 1) {return 0;}if (n % 2 == 0) {return 1 + integerReplacement(n / 2);}return 2 + Math.min(integerReplacement(n / 2), integerReplacement(n / 2 + 1));}
}作者:力扣官方题解
链接:https://leetcode.cn/problems/integer-replacement/solutions/1108099/zheng-shu-ti-huan-by-leetcode-solution-swef/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
这篇关于Java中等题-整数替换(力扣)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!