Java | Leetcode Java题解之第397题整数替换

题目:

题解:

java 复制代码
class Solution {
    public int integerReplacement(int n) {
        int ans = 0;
        while (n != 1) {
            if (n % 2 == 0) {
                ++ans;
                n /= 2;
            } else if (n % 4 == 1) {
                ans += 2;
                n /= 2;
            } else {
                if (n == 3) {
                    ans += 2;
                    n = 1;
                } else {
                    ans += 2;
                    n = n / 2 + 1;
                }
            }
        }
        return ans;
    }
}
相关推荐
langsiming17 分钟前
【无标题】
java·开发语言·数据库
weisian15122 分钟前
Java并发编程--45-分布式一致性协议入门:Raft、Paxos与ZAB的核心思想
java·分布式·raft·paxos·zab
木井巳24 分钟前
【递归算法】解数独
java·算法·leetcode·决策树·深度优先·剪枝
t***54429 分钟前
如何在 Dev-C++ 中切换编译器
java·开发语言·c++
Lisonseekpan31 分钟前
Git:如何将一个分支的特定提交合并到另一个分支?
java·大数据·git·后端·elasticsearch
Boop_wu32 分钟前
[Java EE 进阶]Mybatis进阶(动态SQL)
java·数据库·maven·mybatis
上弦月-编程40 分钟前
企业级RAG系统构建指南
leetcode
阿Y加油吧1 小时前
算法实战笔记:LeetCode 31 下一个排列 & 287 寻找重复数
笔记·算法·leetcode
穿条秋裤到处跑1 小时前
每日一道leetcode(2026.04.24):距离原点最远的点
算法·leetcode·职场和发展
BullSmall1 小时前
Redis 双机部署 完整方案(两种架构,适配两台机器)
java·redis·架构