更新二进制位——LintCode
来源:互联网 发布:网络编辑工具箱 编辑:程序博客网 时间:2024/05/22 10:33
给出两个32位的整数N和M,以及两个二进制位的位置i和j。写一个方法来使得N中的第i到j位等于M(M会是N中从第i为开始到第j位的子串)
样例
给出N = (10000000000)2,M = (10101)2, i = 2, j = 6
返回 N = (10001010100)2
挑战
最少的操作次数是多少?
*******************************
通过移位运算符来进行操作
class Solution { /** *@param n, m: Two integer *@param i, j: Two bit positions *return: An integer */ public int updateBits(int n, int m, int i, int j) { // write your code here m <<= i; int factor = 1; factor <<= i; int step = j-i+1; while (step > 0) { n &= (~factor); factor <<= 1; step--; } return n ^ m; }}
0 0
- 更新二进制位——LintCode
- LintCode-更新二进制位
- LintCode - 更新二进制位
- lintcode-更新二进制位-179
- LintCode 更新二进制位
- LintCode:更新二进制位
- LintCode 更新二进制位
- lintcode 更新二进制位
- 中等 更新二进制位 (lintcode)
- LintCode 179-更新二进制位
- LintCode : 更新二进制位
- 更新二进制位-LintCode
- 更新二进制位
- 更新二进制位
- 更新二进制位
- 更新二进制位
- 左旋转二进制位-LintCode
- 关于二进制位——切记!!!
- 【bzoj2749】【HAOI2012】【外星人】【数论】
- 给jdk写注释系列之jdk1.6容器(10)-Stack&Vector源码解析
- 区分ROM RAM DRAM SRAM DDRAM FLASH NOR FLASH
- RGB-D
- 根据centos系统启动过程定位故障位置
- 更新二进制位——LintCode
- PHP 7.0 安装使用与性能监测-Ubuntu!
- 使用Android-PullToRefresh库中的PullToRefreshListView添加headerView
- Activity的正常和异常生命周期分析
- android studio 常用快捷键
- CALayer 相关
- PDU的编码--EMS编码
- centos启动流程
- 网络编程基础