Given an integer, write a function to determine if it is a power of two.

思路:

  如果一个数是2的Power,那么该数的二进制串中只有一位为1,其余都为0。执行一次n & (n - 1)可消除最低位的一个1,若消除后为0,则说明该数是2的Power(n == 0 || n == -2147483648 时要特殊考虑)。

C++:

 1 class Solution {
 2 public:
 3     bool isPowerOfTwo(int n) {
 4         if(n == 0 || n == -2147483648)
 5             return false;
 6
 7         n = n & (n - 1);
 8
 9         if(n == 0)
10             return true;
11         else
12             return false;
13     }
14 };

Python:

 1 class Solution:
 2     # @param {integer} n
 3     # @return {boolean}
 4     def isPowerOfTwo(self, n):
 5         if n == 0 or n == -2147483648:
 6             return False
 7
 8         n = n & (n - 1)
 9
10         if n == 0:
11             return True
12         else:
13             return False

转载于:https://www.cnblogs.com/tjuloading/p/4624083.html

【LeetCode 231】Power of Two相关推荐

  1. 重复次数最多的 子串_每日算法系列【LeetCode 424】替换后的最长重复字符

    题目描述 给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次.在执行上述操作后,找到包含重复字母的最长子串的长度. 示例1 输入: s = &quo ...

  2. 【LeetCode - 32】最长有效括号

    给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度. 示例 1: 输入:s = "(()" 输出:2 解释:最长有效括号子串是 " ...

  3. 【LeetCode题解】二叉树的遍历

    我准备开始一个新系列[LeetCode题解],用来记录刷题,顺便复习一下数据结构与算法. 1. 二叉树 二叉树(binary tree)是一种极为普遍的数据结构,树的每一个节点最多只有两个节点--左孩 ...

  4. 如何给柱状图柱子添加阴影_【LeetCode日记】84. 柱状图中最大的矩形

    题目描述 ` 给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最大面积. 以上是柱状图的示例,其中每个柱子的宽度为 1,给 ...

  5. 【LeetCode笔记】253. 会议室 II(Java、偏数学)

    文章目录 题目描述 思路 && 代码 计划里 hot 100 + 剑指Offer 的题目中唯一一道会员题,同时也是最后一道没写的题,刚好今天 leetcode 发了一天会员可以写上-简 ...

  6. 【LeetCode笔记】301. 删除无效的括号(Java、DFS、字符串)

    文章目录 题目描述 思路 && 代码 二刷 题目描述 [所有可能结果]-> [暴力DFS] 思路 && 代码 代码比较长,但是总体思路很清晰. 剪枝:舍弃左括号. ...

  7. 【LeetCode 总结】Leetcode 题型分类总结、索引与常用接口函数

    文章目录 零. Java 常用接口函数 一. 动态规划 二. 链表 三. 哈希表 四. 滑动窗口 五. 字符串 六. DFS.BFS 七. 二分法 八. 二叉树 九. 偏数学.过目不忘 and 原地算 ...

  8. 【LeetCode笔记】剑指 Offer 03. 数组中重复的数字(Java、哈希表、原地算法)

    文章目录 题目描述 思路 & 代码 二刷 题目描述 倒是和leetcode 287 寻找重复数很像..但是不能使用那道题的快慢指针法(也可能是我太菜了) 重点在于题干的描述[长度为 n 的数组 ...

  9. 【LeetCode笔记】53. 最大子序和(Java、动态规划)

    文章目录 题目描述 代码 & 思路 题目描述 经典题目了,多种解法(不过目前只学了一种,暴力不算) 代码 & 思路 这块基本上算是写给自己看的了..写得不好,如果想学这种方法最好还是去 ...

  10. 【leetcode dp】629. K Inverse Pairs Array

    https://leetcode.com/problems/k-inverse-pairs-array/description/ [题意] 给定n和k,求正好有k个逆序对的长度为n的序列有多少个,0& ...

最新文章

  1. linux下关于mysqldump备份的.sql导入数据库表数据丢失优化
  2. MpAndroidChart源码修改之饼状图添加标志线
  3. linux 星号 通配符,如何在bash中转义通配符/星号字符?
  4. linux系统使用小端内存,linux进程内存管理
  5. SpringMVC之RequestParam详解
  6. POJ 3253-Fence Repair(堆)
  7. 摩根大通分析:随着灰度资金流动缓慢,比特币能否重回4万美元仍存疑问
  8. 8 个 Linux 下 ls 命令的高级用法!个个惊艳!
  9. linux 连接redis_.NetCore 使用StackExchange.Redis 连接Redis
  10. Chromium OS编译手记
  11. 28款数据恢复软件分类介绍
  12. 常用的DOS操作命令使用方法及介绍
  13. 神经网络 激励函数
  14. 目标跟踪算法研究综述
  15. 扫描仪支持linux驱动,开源扫描仪驱动sane支持的扫描仪列表
  16. 基于mt7621架构路由器编译auditord(生成ipk包)
  17. RSSHub 的衍生项目 RSSHub Rader 安装构建 问题 Error: Cannot find module 'node-sass'
  18. linux报错的Syntax error “(“ 的解决方法
  19. java抢红包线段分割法_抢红包算法——线段分割法
  20. Android 一体机研发之修改系统设置————声音

热门文章

  1. 【Django 2021年最新版教程22】数据库model 批量插入创建
  2. Java HashMap原理
  3. (二)UML语言概述
  4. 栈溢出(Stack Overflow)
  5. mysql备份文件无法回退_mysql备份灵活恢复
  6. java基础总结05-面向对象
  7. git 安装及常用命令
  8. 关于SQLyog创建的数据库不显示的问题
  9. Java 设计模式 之 装饰器模式(Decorator)
  10. C6748和音频ADC连接时候的TDM以及I2S格式问题