201. Bitwise AND of Numbers Range

题目:

Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all numbers in this range, inclusive.

For example, given the range [5, 7], you should return 4.

链接: http://leetcode.com/problemset/algorithms/

题解:

一开始采用暴力解,自然超时了。后来想了想,其实每次比较一个位置就可以了变成0以后不可能再变回1,所以能不能转换为一个O(32)的运算。因为从m到n的话其实就等于m + 1 + 1 + 1...  ~ n,假设从101000变换到110000,低5位总会被全部清0, 这样我们只用从最高位往最低位置比较m和n的相同部分就可以了,或者从最低位向最高位比较,假如m和n个位不相等,则向右shift,继续比较十位,以此类推。然而想到这里并没有什么用,还没写code我就去看了discuss...于是得到了答案....要改掉这个坏毛病。

Time Complexity - O(1), Space Complexity - O(1)

public class Solution {public int rangeBitwiseAnd(int m, int n) {int count = 0;while(m != n) {m >> 1;n >> 1;count++;}return m << count;}
}

 

还有另外一种更简练的写法在reference里。就是对n进行末位清0,然后于m进行比较,直到n <= m,然后返回n。

Time Complexity - O(1),Space Complexity - O(1)。

public class Solution {public int rangeBitwiseAnd(int m, int n) {while(m < n) n = n & (n - 1);return n;}
}

 

二刷:

用了上面的办法。就是把n从最低起清零,然后跟m进行比较,当m >= n的时候,这时候我们找到了一个可能的解,返回n。

我们也可以从高位向低位比较。

Java:

Time Complexity - O(1), Space Complexity - O(1)

public class Solution {public int rangeBitwiseAnd(int m, int n) {while (m < n) n &= (n - 1);return n;}
}

 

三刷:

利用末位清零。

Java:

public class Solution {public int rangeBitwiseAnd(int m, int n) {while (m < n) {n &= (n - 1);}return n;}
}

 

 

 

Reference:

http://www.meetqun.com/thread-8769-1-1.html

https://leetcode.com/discuss/32115/bit-operation-solution-java

https://leetcode.com/discuss/32278/8line-c-simple-clear-solution

https://leetcode.com/discuss/32053/accepted-c-solution-with-simple-explanation

https://leetcode.com/discuss/35057/share-my-simple-java-solution

https://leetcode.com/discuss/34918/one-line-c-solution

https://leetcode.com/discuss/53646/simple-and-easy-to-understand-java-solution

 

转载于:https://www.cnblogs.com/yrbbest/p/4493541.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398157.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

laravel mysql驱动_Laravel 如何同时使用不同数据库驱动

queue配置首先说明一下我之前的项目中如何使用queue的。我们现在的项目都是用的symfony&#xff0c;老一点的项目用的symfony1poser/vendor/bin 加入到环境变量中。source ~/.bash_profile 就可以直接在命令行中使用laravel了。试一下。laravel -V 能够看到下面的&#xff0c;就…

open-falcon的插件机制

Plugin可以看做是对agent功能的扩充。对于业务系统的监控指标采集&#xff0c;最好不要做成plugin&#xff0c;而是把采集脚本放到业务程序发布包中&#xff0c;随着业务代码上线而上线&#xff0c;随着业务代码升级而升级&#xff0c;这样会比较容易管理。 1. 编写采集脚本 用…

python 获取文件大小,创建时间和访问时间

# -*- coding: UTF8 -*- import timeimport datetime import os 1、  把时间戳转化为时间: 1479264792 to 2016-11-16 10:53:12    def TimeStampToTime(timestamp):       timeStruct time.localtime(timestamp)       return time.strftime(%Y-%m-%d %H:%…

mysql 免安装版迁移_mysql免安装版 安装配置 (转)

1. 下载MySQL Community Server 5.6.132. 解压MySQL压缩包将以下载的MySQL压缩包解压到自定义目录下,我的解压目录是:"D:\Program Files\MySQL\mysql-5.6.13-win32"将解压目录下默认文件 my-default.ini 拷贝一份&#xff0c;改名 my.ini复制下面的配置信息到 my.ini…

从简单的信道预计说起

前面写了关于CP在OFDM中的应用&#xff0c;主要是记录一点零星的想法而已&#xff0c;今天突然想写点关于信道特性方面的东西。原因有下面几点&#xff1a; 1&#xff09;信道在仿真中的地位不容置疑&#xff0c;不同信道的条件下的仿真是很多课题的重点&#xff0c;自己差点儿…

python input函数赋值法_赋值法 - 静雅斋数学 - 博客园

前言赋值法是高中数学中比较常用的一种方法&#xff0c;使用“赋值法”的数学素材和知识点&#xff0c;散落在高中数学的几乎各个章节中&#xff0c;现对其进行整理&#xff0c;以便于学习。比如学习函数时可以赋值法给出单调性&#xff0c;奇偶性&#xff0c;周期性等&#xf…

ActiveMQ 的连接和会话

要了解 connection 和 session 的概念&#xff0c;可以先从 ConnectionState 和 SessionState 入手&#xff1a; // 省略部分代码 public class ConnectionState {ConnectionInfo info;private final ConcurrentHashMap<TransactionId, TransactionState> transactions …

IOS开发之页面切换

从一个ViewController切换到另一个ViewController有下面几种方法&#xff1a; &#xff08;1&#xff09;addsubview方法切换视图self.view addSubview:(加载的新页面);相应的 [self.view removeFromSuperview];移除添加的view&#xff08;2&#xff09;self.view insertSubvie…

python模拟购物车购物过程_Python基于数列实现购物车程序过程详解

要求1、启动程序后让用户输入余额&#xff0c;并打印商品列表2、用户通过输入编号购买商品3、用户选择商品购买后&#xff0c;根据余额判断成功或者失败&#xff0c;给出对应提示4、可以随时退出&#xff0c;退出后打印账号余额以及购买的商品列表构思1、首先&#xff0c;用户余…

Time

问题 : Time时间限制: 1 Sec 内存限制: 128 MB题目描述Digital clock use 4 digits to express time, each digit is described by 3*3 characters (including”|”,”_”and” “).now given the current time, please tell us how can it be expressed by the digital clock…

正则表达式怎样匹配 不包含特定字符串的字符串

正则表达式匹配公式为&#xff1a;^((?!XXX).)*$&#xff0c; XXX为字符串。转载于:https://www.cnblogs.com/lixiaolun/p/5627254.html

ffmpeg 同宽度 画中画_FFmpeg中overlay滤镜用法-水印及画中画

1. overlay 技术简介overlay 技术又称视频叠加技术。overlay 视频技术使用非常广泛&#xff0c;常见的例子有&#xff0c;电视屏幕右上角显示的电视台台标&#xff0c;以及画中画功能。画中画是指在一个大的视频播放窗口中还存在一个小播放窗口&#xff0c;两个窗口不同的视频内…

shutil

高级的 文件、文件夹、压缩包 处理模块 1、shutil.copyfileobj(fsrc, fdst[, length])  将文件内容拷贝到另一个文件中 import shutil shutil.copyfileobj(open(old.xml,r), open(new.xml, w)) 2、shutil.copyfile(src, dst)  拷贝文件 shutil.copyfile(f1.log, f2.log) #目…

Android surfaceview详解

周末看《精通Android游戏开发》(Pro Android Games)&#xff0c;里面讲到游戏的框架&#xff0c;其中一个重要的概念surfaceview,觉得不是很理解&#xff0c;于是花了一点时间研究了下&#xff0c;写下自己的心得。surface&#xff0c;这个单词的意思是浮在表面的&#xff0c;那…

查看操作系统的UUID

UUID 是系统的唯一识别码&#xff0c;永远不会重复&#xff0c;比较有用。Windows 篇在命令提示符下输入wmic 再输入csproduct 或 csproduct list fullwmic:rootcli>csproduct list fullLinux 篇&#xff0c;&#xff08;以 CentOS为例&#xff09;yum install epel-release…

ThinkPhp学习06

一、简单学习修改用户信息模块 1、编写UserAction.class.php 1 <?php2 3 class UserAction extends Action{4 public function index(){5 $mM(User);6 $arr$m->select();7 $this->assign(data,$arr);8 …

Spring MVC @SessionAttributes注解

SessionAttributes原理 默认情况下Spring MVC将模型中的数据存储到request域中。当一个请求结束后&#xff0c;数据就失效了。如果要跨页面使用。那么需要使用到session。而SessionAttributes注解就可以使得模型中的数据存储一份到session域中。 SessionAttributes参数 1、name…

C# 关于MVC框架的简单实例(计算器)

一、需求分析 实现效果 二、实现步骤 步骤一&#xff1a;新建项目--->Web---->空模板 步骤二&#xff1a;添加控制器 步骤三&#xff1a;根据控制器名称添加视图 步骤四&#xff1a;添加Models模型 编写具体的方法 using System;using System.Collections.Generic;using…

JS函数

函数&#xff1a; 函数是由事件驱动或者当它被调用时执行的可重复色代码块。 <head> <script> function hanshu() { alert("你好&#xff01;"); } </script> </head><body> <button οnclick"hanshu()">点击</but…

the python interpreter is in_the python interpreter is in - 百度学术

152.6Khttp://www.web.mit.edu/18.417/OldFiles/doc/pydocs/ext.pdfweb.mit.edu全网免费224.9Khttp://www.logos.t.u-tokyo.ac.jp/~eddieh/Python-Docs-2.3.4/ext.pdflogos.t.u-tokyo.ac.jp全网免费224.9Khttp://www.logos.ic.i.u-tokyo.ac.jp/~eddieh/Python-Docs-2.3.4/ext.p…