用 O(1) 时间检测整数 n 是否是 2 的幂次。

位操作

2的幂次数

2  10

4 100

8 1000

16 10000

...

 1 class Solution {
 2     /*
 3      * @param n: An integer
 4      * @return: True or false
 5      */
 6     public boolean checkPowerOf2(int n) {
 7         // write your code here
 8         return ((n > 0) && ((n & (n - 1)) == 0));
 9     }
10 };
时间: 2024-10-24 09:29:45

用 O(1) 时间检测整数 n 是否是 2 的幂次。的相关文章

lintcode容易题1-10题

难度系数排序,容易题1-10题: Cosine Similarity new  Fizz Buzz  O(1)检测2的幂次  x的平方根  不同的路径  不同的路径 II  两个字符串是变位词  两个链表的和 中位数 主元素 Cosine Similarity 题目: Cosine similarity is a measure of similarity between two vectors of an inner product space that measures the cosine

一些位运算的技巧

参考自:https://blog.csdn.net/deaidai/article/details/78167367 奇技淫巧 1.技巧一:用于消去x的最后一位的1 x & (x-1) x = 1100 x-1 = 1011 x & (x-1) = 1000 1.1.应用一 用O(1)时间检测整数n是否是2的幂次. 思路解析:N如果是2的幂次,则N满足两个条件.1.N>02.N的二进制表示中只有一个1一位N的二进制表示中只有一个1,所以使用N&(N-1)将唯一的一个1消去.如

lintcode入门篇四

142. O(1)时间检测2的幂次 用 O(1) 时间检测整数 n 是否是 2 的幂次. 样例 Example 1: Input: 4 Output: true Example 2: Input: 5 Output: false 挑战 O(1) time 第一种方法:&的方法 class Solution: """ @param n: An integer @return: True or false """ ''' 1.使用递归的方法来

EGOCache如何检测缓存时间过期

子曰:学而不思则罔,思而不学则殆. 在上一篇文章中:EGOCache缓存框架详细讲解 提到EGOCache可以设定缓存过期时间,默认是1天.查看了一下EGOCache源码,设置默认时间: [self setDefaultTimeoutInterval:86400]; //86400 = 24 * 60 * 60 刚好是一天时间. EGOCache为什么要提供设定缓存过期时间呢?或者说设定缓存过期时间有什么好处呢?我觉得最大的好处就是可以定时清除缓存.可以设置某一项的缓存时间,很方便管理缓存. 那

Windows下利用Python动态检测外网IP并发邮件给邮箱

我们知道,运营商给分配的都是动态IP,IP地址过一段时间会自己变化,这就给需要静态地址的应用带来不便,例如搭建服务器或者远程控制电脑,这种情况必须知道自己电脑的IP,利用Python可以方便的自动检测并向邮箱发送邮箱. 但是,个人网络一般都是通过路由器来上网,直接检测电脑的IP并不可行,需要得到外网的IP.内网电脑可以通过端口映射来映射到外网.检测的原理如下: 1.通过自己的电脑信息不太好获取外网IP,幸好有一些雷锋网站可以帮助我们来检测,例如 http://city.ip138.com/ip2

android内存检测

/** * 开启线程检测软件可用内存情况,软件退出后, 调用System.exit(0)该线程才会停止 * * * @param sleep * 每隔一段时间检测内存 * @param standard * 内存超过多少比例报警 */ public static void memoryWatch(final int sleep, final int standard) { if (sleep <= 0) { Log.e(TAG, "memoryWatch, invalid sleep =

用JavaScript/Jquery检测离线/在线状态

这两年离线浏览技术越来越流行,最常见的就是html5移动应用里,有很多普通的Web app也使用了这些技术.但是,新技术的出现有时会给我们WEB开发人员带领额外的苦恼,比如,如何判断用户现在是在线还是离线?幸好,有矛就有盾,javascript里的 navigator 对象帮我们解决这个问题. navigator.onLine 属性能给我们提供一个布尔值,用来判断用户是否连接了互联网.你可以这样访问它: if(navigator.onLine) { // true|false// ...}没有比

C#时间转整型(时间戳),模仿php strtotime函数的部分功能

今天需要将一个基于MS SQL数据库的新闻系统数据导入phpcms v9,源系统新闻日期格式为"2014-01-15 10:45:49",而phpcms中使用的是整型时间戳,在php中很简单,用strtotime()即可:在C#中,需要自己写函数,步骤如下: 步骤1.先计算phpcms中时间戳所用基准时间: 1 TimeSpan ts = new TimeSpan(0,0,0,1389753949); 2 DateTime now = Convert.ToDateTime("

第十七周oj刷题——Problem O: B C++时间类的运算符重载

Description C++时间类的运算符重载 定义一个时间类Time,其数据成员为表示时间的小时(hour).分(minute),秒(second). 重载运算符"+",使之能用于时间对象的加法运算:重载运算符"<<",使之能用于时间对象的输出操作. (1)参加运算的两个操作数可以都是时间类对象,也可以其中有一个是整数(表示秒),顺序任意. 例如,t1+t2,i+t1,t1+i均合法(设i为整数表示秒数, t1,t2为时间类Time对象). (2)输