题解 | #最接近的数#

最接近的数

http://www.nowcoder.com/practice/33ad4d168a3247b9b63f41e4eaded652

class CloseNumber {
public:
    vector<int> getCloseNumber(int x) {
        // write code here
        bitset<32> lower(x);
        bitset<32> upper(x);
        
        int l = -1;
        for (int i = 0; i < lower.size() - 1; i++)
        {
            if (lower[i] == 0 && lower[i + 1] == 1)
            {
                lower.flip(i);
                lower.flip(i + 1);
                int left = 0, right = i - 1;
                while (left < right)
                {
                    while (lower[left] == 0)
                    {
                        left++;
                    }
                    while (lower[right] == 1)
                    {
                        right--;
                    }
                    if (left < right)
                    {
                        lower.flip(left++);
                        lower.flip(right--);
                    }
                }
                break;
            }
        }
        l = (int)lower.to_ulong();
        
        int r = -1;
        for (int i = 0; i < upper.size() - 1; i++)
        {
            if (upper[i] == 1 && upper[i + 1] == 0)
            {
                upper.flip(i);
                upper.flip(i + 1);
                int left = 0, right = i - 1;
                while (left < right)
                {
                    while (upper[left] == 1)
                    {
                        left++;
                    }
                    while (upper[right] == 0)
                    {
                        right--;
                    }
                    if (left < right)
                    {
                        upper.flip(left++);
                        upper.flip(right--);
                    }
                }
                break;
            }
        }
        r = (int)upper.to_ulong();
        return {l, r};
    }
};
全部评论

相关推荐

king122:实习经历可以重点写这里这里写的清晰一点,分点写。技能特长一般是放在上面的,而且你的实习经历不能只写实现了一些简单的接口,你要去写一些难点和亮点。甚至可以写一些数字指标上去,只要你能配合业务讲出来,根据我说的这些自己简单包装一下,面试应该会更多,至于笔试和八股,那就只能纯靠自己了,对项目包装感兴趣可以找我
点赞 评论 收藏
分享
05-01 22:41
中南大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务