【LeetCode 231】Power of Two
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相关推荐
- 重复次数最多的 子串_每日算法系列【LeetCode 424】替换后的最长重复字符
题目描述 给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次.在执行上述操作后,找到包含重复字母的最长子串的长度. 示例1 输入: s = &quo ...
- 【LeetCode - 32】最长有效括号
给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度. 示例 1: 输入:s = "(()" 输出:2 解释:最长有效括号子串是 " ...
- 【LeetCode题解】二叉树的遍历
我准备开始一个新系列[LeetCode题解],用来记录刷题,顺便复习一下数据结构与算法. 1. 二叉树 二叉树(binary tree)是一种极为普遍的数据结构,树的每一个节点最多只有两个节点--左孩 ...
- 如何给柱状图柱子添加阴影_【LeetCode日记】84. 柱状图中最大的矩形
题目描述 ` 给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最大面积. 以上是柱状图的示例,其中每个柱子的宽度为 1,给 ...
- 【LeetCode笔记】253. 会议室 II(Java、偏数学)
文章目录 题目描述 思路 && 代码 计划里 hot 100 + 剑指Offer 的题目中唯一一道会员题,同时也是最后一道没写的题,刚好今天 leetcode 发了一天会员可以写上-简 ...
- 【LeetCode笔记】301. 删除无效的括号(Java、DFS、字符串)
文章目录 题目描述 思路 && 代码 二刷 题目描述 [所有可能结果]-> [暴力DFS] 思路 && 代码 代码比较长,但是总体思路很清晰. 剪枝:舍弃左括号. ...
- 【LeetCode 总结】Leetcode 题型分类总结、索引与常用接口函数
文章目录 零. Java 常用接口函数 一. 动态规划 二. 链表 三. 哈希表 四. 滑动窗口 五. 字符串 六. DFS.BFS 七. 二分法 八. 二叉树 九. 偏数学.过目不忘 and 原地算 ...
- 【LeetCode笔记】剑指 Offer 03. 数组中重复的数字(Java、哈希表、原地算法)
文章目录 题目描述 思路 & 代码 二刷 题目描述 倒是和leetcode 287 寻找重复数很像..但是不能使用那道题的快慢指针法(也可能是我太菜了) 重点在于题干的描述[长度为 n 的数组 ...
- 【LeetCode笔记】53. 最大子序和(Java、动态规划)
文章目录 题目描述 代码 & 思路 题目描述 经典题目了,多种解法(不过目前只学了一种,暴力不算) 代码 & 思路 这块基本上算是写给自己看的了..写得不好,如果想学这种方法最好还是去 ...
- 【leetcode dp】629. K Inverse Pairs Array
https://leetcode.com/problems/k-inverse-pairs-array/description/ [题意] 给定n和k,求正好有k个逆序对的长度为n的序列有多少个,0& ...
最新文章
- linux下关于mysqldump备份的.sql导入数据库表数据丢失优化
- MpAndroidChart源码修改之饼状图添加标志线
- linux 星号 通配符,如何在bash中转义通配符/星号字符?
- linux系统使用小端内存,linux进程内存管理
- SpringMVC之RequestParam详解
- POJ 3253-Fence Repair(堆)
- 摩根大通分析:随着灰度资金流动缓慢,比特币能否重回4万美元仍存疑问
- 8 个 Linux 下 ls 命令的高级用法!个个惊艳!
- linux 连接redis_.NetCore 使用StackExchange.Redis 连接Redis
- Chromium OS编译手记
- 28款数据恢复软件分类介绍
- 常用的DOS操作命令使用方法及介绍
- 神经网络 激励函数
- 目标跟踪算法研究综述
- 扫描仪支持linux驱动,开源扫描仪驱动sane支持的扫描仪列表
- 基于mt7621架构路由器编译auditord(生成ipk包)
- RSSHub 的衍生项目 RSSHub Rader 安装构建 问题 Error: Cannot find module 'node-sass'
- linux报错的Syntax error “(“ 的解决方法
- java抢红包线段分割法_抢红包算法——线段分割法
- Android 一体机研发之修改系统设置————声音