Leetcode.342 4的幂

news2024/11/28 0:49:45

给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。

整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x

示例 1:

输入:n = 16
输出:true

示例 2:

输入:n = 5
输出:false

示例 3:

输入:n = 1
输出:true

提示:

  • -231 <= n <= 231 - 1

思路:

如果是4的幂,那么一定是2的幂

n&(n-1)判断是不是2的幂,是2的幂需要满足二进制表示中只能有一个1

如果是4的幂,那么二进制表示中一定只有一个1,并且1只能在偶数位上

构造一个10101010.....(共32位)判断1是否在偶数位上,写作十六进制 0xaaaaaaaa

和n相与就能判断出是不是符合条件

二进制技巧:

1、n & (n - 1)

可以把最低位的1移除,如果n & (n - 1)==0则表示n是2的幂

2、n&(-n)

可以获取最低位的1

代码:

class Solution {
public:
    bool isPowerOfFour(int n) {
        return n > 0 && (n & (n - 1)) == 0 && (n & 0xaaaaaaaa) == 0;
    }
};

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

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

相关文章

第20章 Mac+VSCode配置C++环境

1. 下载VSCode VSCode下载地址在mac终端里输入xcode- select --install命令,根据提示安装xcode工具。2. 安装插件(4个) 打开VScode,点击应用右侧菜单栏 C/C++(必装) Code Runner(必装) CodeLLDB(代码调试),不安装这个插件程序调试时,无法在vscode自带的终端里输入参…

智慧办公楼宇可视化:智能管理与优化

通过图扑可视化技术集成多种数据源&#xff0c;实时展示智慧办公楼宇的运行状态和管理信息&#xff0c;助力高效运营和工作环境优化。

荣耀电脑误删U盘文件?别慌,这里有找回方法

荣耀电脑误删U盘文件怎么找回&#xff1f;在日常工作和生活中&#xff0c;U盘是我们存储和传输数据的重要工具之一。然而&#xff0c;在使用荣耀电脑时&#xff0c;如果不小心误删了U盘中的文件&#xff0c;可能会给我们带来不小的困扰。但是&#xff0c;别慌&#xff01;本文将…

4面体空间5点结构种类与占比

在30个点的4面体中取5个点&#xff0c;有30*29*28*27*26/(5*4*3*2)142506种取法&#xff0c; 这里要求5个点必须是直链或支链。共有496个组合符合要求&#xff0c;按平移对称性可分成181个不同的结构 结构 数量 结构 数量 结构 数量 结构 数量 结构 数量 结构 数量 …

四川赤橙宏海商务信息咨询有限公司引领抖音电商浪潮

在数字时代的浪潮下&#xff0c;电商行业飞速发展&#xff0c;抖音电商作为新兴的电商模式&#xff0c;凭借其独特的社交属性和短视频形式&#xff0c;迅速吸引了众多消费者和商家的目光。四川赤橙宏海商务信息咨询有限公司&#xff0c;作为抖音电商服务的佼佼者&#xff0c;凭…

Go堆内存管理

内存管理单元 内存管理单元有如下 page: x64下大小为8k。go与OS内存申请与释放都是以page为单位 span: 多个连续page组成&#xff0c;是内存管理的基本单元 mcache: 每个P所有的cache&#xff0c;包含多个空闲内存块链表&#xff0c;不同的链表上的内存块大小可能是不相同的…

出海拓圈! 环保企业走出去之马来西亚水环境项目考察

中办、国办印发《关于构建现代环境治理体系的指导意见》&#xff0c;其中明确提出“鼓励企业参与绿色‘一带一路’建设&#xff0c;带动先进的环保技术、装备、产能走出去”。近年来中国积极参与全球生态环境治理&#xff0c;在环境资源综合管理、水旱灾害防御、固危废无害化处…

Resilience4j之RateLimiter和常见限流算法总结

官网地址&#xff1a;https://resilience4j.readme.io/docs/ratelimiter 中文文档&#xff1a;https://resilience4j.readme.io/docs/ratelimiter 【1】概述 Resilience4j提供了一个限流器&#xff0c;它将从epoch开始的所有纳秒划分为多个周期。每个周期的持续时间RateLimi…

1975react社区问答管理系统开发mysql数据库web结构node.js编程计算机网页源码

一、源码特点 react 社区问答管理系统是一套完善的完整信息管理类型系统&#xff0c;结合react.js框架和node.js后端完成本系统&#xff0c;对理解react node编程开发语言有帮助系统采用node框架&#xff08;前后端分离&#xff09;&#xff09;&#xff0c;系统具有完整的源…

如何有效管理你的Facebook时间线?

Facebook作为全球最大的社交平台之一&#xff0c;每天都有大量的信息和内容在用户的时间线上展示。有效管理你的Facebook时间线&#xff0c;不仅可以提升用户体验&#xff0c;还能够帮助你更好地控制信息流和社交互动。本文将探讨多种方法和技巧&#xff0c;帮助你有效管理个人…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【19】认证服务03—分布式下Session共享问题

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【19】分布式下Session共享问题 session原理分布式下session共享问题Session共享问题解决—session复制Session共享问题解决—客户端存储Session共享问题解决—hash一致性Session共享问题…

【C++】 解决 C++ 语言报错:Invalid Use of Incomplete Type

文章目录 引言 在 C 编程中&#xff0c;“Invalid Use of Incomplete Type” 是一种常见错误。此错误通常在程序试图使用未完全定义的类或结构时发生。这种错误不仅会导致编译失败&#xff0c;还可能导致程序行为不可预测。本文将详细探讨无效使用不完整类型的成因、检测方法及…

【Redis】真行,原来是这样啊! --Redis自动序列化和手动序列化的区别(存储结构、内存开销,实际写法)

对于Redis有两种序列化和反序列化的方式&#xff0c; 方式一&#xff1a; 一种是通过 注入RedisTemplate 对象&#xff0c;找个对象&#xff0c;通过配置类进行一定的配置&#xff0c;使得使用RedisTemplate 对象时&#xff0c;便会使用配置的那些键、值的序列化方式&#xff…

【人工智能】--强化学习(2.0)

个人主页&#xff1a;欢迎来到 Papicatch的博客 课设专栏 &#xff1a;学生成绩管理系统 专业知识专栏&#xff1a; 专业知识 文章目录 &#x1f349;强化学习与有监督学习的区别 &#x1f348;数据特点 &#x1f348;学习目标 &#x1f348;反馈机制 &#x1f348;策略…

数学建模MATLAB绘图大全

最近快要开始一年一度的数学建模竞赛啦&#xff0c;接下来争取每天更一篇数学建模算法&#xff01;&#xff08;当然这是理想状态下&#xff09;&#xff0c;今天就先更一些MATLAB常用的绘图吧&#xff0c;论文赏心悦目的关键就在于丰富多彩的图&#xff0c;好看的图一定会成为…

Linux 查看磁盘是不是 ssd 的方法

lsblk 命令检查 $ lsblk -d -o name,rota如果 ROTA 值为 1&#xff0c;则磁盘类型为 HDD&#xff0c;如果 ROTA 值为 0&#xff0c;则磁盘类型为 SSD。可以在上面的屏幕截图中看到 sda 的 ROTA 值是 1&#xff0c;表示它是 HDD。 2. 检查磁盘是否旋转 $ cat /sys/block/sda/q…

深入理解【 String类】

目录 1、String类的重要性 2、常用方法 2、1 字符串构造 2、2 String对象的比较 2、3 字符串查找 2、4字符转换 数值和字符串转换&#xff1a; 大小写转化&#xff1a; 字符串转数组&#xff1a; 格式转化&#xff1a; 2、5 字符串替换 2、6字符串拆分 2、7 字符串…

【pytorch12】什么是梯度

说明 导数偏微分梯度 梯度&#xff1a;是一个向量&#xff0c;向量的每一个轴是每一个方向上的偏微分 梯度是有方向也有大小&#xff0c;梯度的方向代表函数在当前点的一个增长的方向&#xff0c;然后这个向量的长度代表了这个点增长的速率 蓝色代表比较小的值&#xff0c;红色…

初阶数据结构二叉树练习系列(1)

这个系列的文章将带大家一起刷题&#xff0c;并且总结思路 温馨提示&#xff1a;本篇文章里的练习题仅适合刚学完二叉树的小白使用 相同的树 思路 情况分析&#xff1a;第一种情况&#xff1a;两棵树都为空 → 返回true 第二种情况&am…

Vue +Echarts 二维数组获取最大值和最小值以及索引

实现图例效果 获取最大值方法&#xff1a; maxSecond(array) {let max Number.MIN_SAFE_INTEGER;for (let i 0; i < array.length; i) {const secondElement parseInt(array[i][1]);if (secondElement > max) {max secondElement;}}return max;}, 获取最大值索引&…