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;
    }
}
相关推荐
一起养小猫1 分钟前
《Java数据结构与算法》第四篇(四):二叉树的高级操作查找与删除实现详解
java·开发语言·数据结构·算法
Coder_Boy_12 分钟前
【人工智能应用技术】-基础实战-小程序应用(基于springAI+百度语音技术)智能语音控制-单片机交互代码
java·人工智能·后端·嵌入式硬件
YGGP23 分钟前
【Golang】LeetCode 287. 寻找重复数
开发语言·leetcode·golang
前端小白在前进23 分钟前
力扣刷题:千位分割数
javascript·算法·leetcode
小年糕是糕手29 分钟前
【C/C++刷题集】string类(一)
开发语言·数据结构·c++·算法·leetcode
努力学算法的蒟蒻34 分钟前
day40(12.21)——leetcode面试经典150
算法·leetcode·面试
a努力。39 分钟前
国家电网Java面试被问:二叉树的前序、中序、后序遍历
java·开发语言·后端·面试
yuniko-n1 小时前
【力扣 SQL 50】子查询篇
数据库·sql·leetcode
賬號封禁中miu1 小时前
图论之最小生成树
java·数据结构·算法·图论
月明长歌1 小时前
Java数据结构:PriorityQueue堆与优先级队列:从概念到手写大根堆
java·数据结构·python·leetcode·