leetcode刷题笔记342 4的幂
题目描述:
给定一个整数 (32位有符整数型),请写出一个函数来检验它是否是4的幂。
示例:
当 num = 16 时 ,返回 true 。 当 num = 5时,返回 false。
问题进阶:你能不使用循环/递归来解决这个问题吗?
题目分析:
如231题同样思路,还是通过位操作来解决这道
首先判断下输入为0和负数的情况
然后分析4的幂的特点0,4,16
化为二进制0,0100,00010000
跟求2的幂不同的是此处少了2,8
化为2进制 ,0010,00001000
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
4
8
我们尝试使用位操作将2,8过滤掉
解答代码:
C++版:
class Solution { public:bool isPowerOfFour(int n) {if (n<=0) return false;return ((n&(n-1))==0 && ((n&0x55555555)));} };
Code
Python版:
class Solution:def isPowerOfFour(self, num):""" :type num: int:rtype: bool""" if num<=0:return Falsereturn ((num&(num-1))==0 and (bool(num&0x55555555)))
Code
转载于:https://www.cnblogs.com/qflyue/p/8973355.html
leetcode刷题笔记342 4的幂相关推荐
- LeetCode刷题笔记汇总
LeetCode刷题笔记汇总 第一次刷LeetCode写的一些笔记. 1.两数之和 3.无重复字符的最长子串 15.三数之和 18.四数之和 19.删除链表的倒数第 N 个结点 20.有效的括号 21 ...
- 卷进大厂系列之LeetCode刷题笔记:二分查找(简单)
LeetCode刷题笔记:二分查找(简单) 学算法,刷力扣,加油卷,进大厂! 题目描述 涉及算法 题目解答 学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 给定一个 n 个元素有序的(升序) ...
- LeetCode刷题笔记2——数组2
LeetCode刷题笔记2--数组2 重塑数组 题目 在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原 ...
- 小何同学的leetcode刷题笔记 基础篇(01)整数反转
小何同学的leetcode刷题笔记 基础篇(01)整数反转[07] *** [01]数学取余法*** 对数字进行数位操作时,常见的方法便是用取余的方法提取出各位数字,再进行操作 操作(1):对10取余 ...
- 【leetcode刷题笔记】动态规划
#[leetcode刷题笔记]动态规划 石子游戏 public boolean stoneGame(int[] piles) {int N = piles.length;// dp[i][j] is ...
- LeetCode刷题笔记-动态规划-day4
文章目录 LeetCode刷题笔记-动态规划-day4 55. 跳跃游戏 1.题目 2.解题思路 3.代码 45. 跳跃游戏 II 1.题目 2.解题思路 3.代码 LeetCode刷题笔记-动态规划 ...
- LeetCode刷题笔记- 15.三数之和
LeetCode刷题笔记- 15.三数之和 C语言 题目 注意点 C语言 /*** Return an array of arrays of size *returnSize.* The sizes ...
- LeetCode刷题笔记第6题:Z字形变换
LeetCode刷题笔记第6题:Z字形变换 想法: 要完成字符串根据给定的行数从上往下,从左到右完成Z字形排列.当只有一行时直接返回原字符串,当行数大于1时,先以行数构建一个行数数值个空字符串的列表, ...
- leetcode刷题笔记——二分查找
leetcode刷题笔记--二分查找 目前完成的贪心相关的leetcode算法题序号: 中等:80,81 困难:4 来源:力扣(LeetCode) 链接:https://leetcode-cn.com ...
最新文章
- AUTOML 和 NAS 的真谛
- linux文件操作(二)
- docker 如何删除<none>镜像
- mpvue 微信小程序_使用Vue.js开发微信小程序:开源框架mpvue解析
- Ubuntu 17.10安装phpMyAdmin数据库管理工具
- JS跳转手机QQ的聊天页面
- androidh5混合开发_Android H5混合开发(3):原生Android项目里嵌入Cordova
- 系统Model底层隐藏的坑
- Cobbler详解(二)——Cobbler安装配置
- ROS2 Galactic teb_local_planner
- Fluent 三种初始化使用方法
- 前端Photoshop插件cutterman的下载和安装以及使用
- python给pdf右上角盖章
- QQ音乐 最新歌曲源 API(稳定)
- win7计算机窗口示意图,win7电脑硬盘怎么分区 win7电脑硬盘分区操作方法介绍
- 快递物流查询,教你自动查询并识别所有快递是否签收、退回
- 关于Monkey稳定性测试,这是我看到最详细的文章
- JDBC学习笔记(二)
- 警惕!又一起网络钓鱼攻击事件:Uniswap被盗810万美元
- php识别人脸并提取特征值,C#人脸识别入门篇--提取人脸特征值及人脸识别
热门文章
- Laravel 源码解读:php artisan make:auth
- struts2(三) 输入校验和拦截器
- Swagger+AutoRest 生成web api客户端(.Net)
- php的filesystem基本函数的学习(1)
- Docker学习与和应用(二)_使用Docker
- Oracle 12c In-Memory Option应用解析
- IOS报错:Unexpected ‘@’ in program
- 封装+构造方法小例子
- java中float和double型数据在赋值时有哪些注意事项?,java语言中float和double类型的数据在编程时的注意事项...
- 阅读A Practical Guide to Support Vector Classification