[LeetCode]397. Integer Replacement

    xiaoxiao2021-03-25  157

    https://leetcode.com/problems/integer-replacement/?tab=Description

    偶数除二,奇数可以加一或者减一,问最少多少次变成1

    奇数时,遇到3或者最后两位二进制为01时做减法,其余都做加法

    public class Solution { public int integerReplacement(int n) { int res = 0; while (n != 1) { if ((n & 1) == 0) { // 无符号右移!!! n >>>= 1; } else { if (n == 3 || ((n & 3) == 1)) { n--; } else { n++; } } res++; } return res; } }

    转载请注明原文地址: https://ju.6miu.com/read-3730.html

    最新回复(0)