首页 > 代码库 > integer-replacement

integer-replacement

https://leetcode.com/problems/integer-replacement/// 除了首位的1,其他的1需要2次操作,0需要1次操作。// 所以尽量把1变成0// 所以,3直接得出结果2,// 其他的,01->-1,11->+1public class Solution {    public int integerReplacement(int inn) {        long n = inn;        if (n <= 3) {            return (int)n-1;        }                int step = 0;        while (n > 3) {            // 注意下面的括号,必须有            if ((n & 1) == 0) {                n >>= 1;            }            else if ((n & 2) == 2) {                n += 1;            }            else {                n -= 1;            }            step++;        }        return step + (int)n - 1;    }}

 

integer-replacement