​LeetCode刷题实战342:4的幂

centos7搭建LNMP环境-编译安装&yum安装-超详细 文章目录1. 首先了解编译安装和yum安装的区别。2. yum安装准备工作---切换阿里云yum源3. 编译安装lnmp4.yum安装lnmp5. lnmp一键安装6. 一些报错7. 笔记8. 参考文章 1. 首先了解编译安装和yum安装的区别。 windows下安装centos虚拟机,之前写过。传送门~~ 编译安装: 可以按需安装,想安在哪个目录下就安在哪个目录下。 可以设定参数 可安装自己想要的版本 yum安装: 安装的方便快捷 不需要考虑包的依赖 可以直接使用service nginx st 阅读详情

算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !

今天和大家聊的问题叫做 4的幂,我们先来看题面:

https://leetcode-cn.com/problems/power-of-four/

Given an integer n, return true if it is a power of four. Otherwise, return false.

An integer n is a power of four, if there exists an integer x such that n == 4x.

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

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

示例

示例 1:

输入:n = 16
输出:true

示例 2:

输入:n = 5
输出:false

示例 3:

输入:n = 1
输出:true

解题

迭代

与2的幂算法类似,这里连续对数n模4,若不为0,终止循环,判断数n是否为1,若为1则 返回true,否则false。

class Solution {
public:
    bool isPowerOfFour(int num) {
        if (num == 1){//特殊情况4的零次幂
            return true;
        }
        else if (num == 0 || num % 4 != 0){
            //如果不能整除4
            return false;
        }
        else{
            return isPowerOfFour(num / 4);
        }
    }
};

位运算

进阶不用循环的话,那肯定要做位运算了,4的幂肯定是二进制只有1个1,并且1在偶数位上,所以标志位就是0x5555 5555,但是还不能直接&运算,毕竟有可能非4的幂刚好就是类似0x55555555这样多个1的数呢,所以我们要判断1的个数是否为1,当初就是卡在这一步,后面看了网上答案,才发现可以先判断是否为2的幂,2的幂判断就是num &(num -1).

class Solution {
    public boolean isPowerOfFour(int num) {
       if (num < 0 || (num & (num-1)) > 0 ){
            //check(is or not) a power of 2.
            return false;
        }
        if((num & 0x55555555) > 0){
            //check 1 on odd bits
            return true;
        }
        return false;
    }
}

好了,今天的文章就到这里,如果觉得有所收获,请顺手点个在看或者转发吧,你们的支持是我最大的动力 。

上期推文:

LeetCode1-340题汇总,希望对你有点帮助!

LeetCode刷题实战341:扁平化嵌套列表迭代器

【Dify】PPT生成工具应用 本文介绍了一款自动化PPT生成工具,通过智能接口将文本内容高效转化为结构化演示文档。该系统采用三阶段工作流(内容输入、HTTP请求上传、文件输出),无需复杂操作即可生成专业PPT。工具适用于教学课件、产品发布、企业培训等场景,能显著提升内容表达效率,特别适合初学者快速制作演示材料。文章详细说明了核心节点、应用场景及开发资源,为文本到PPT的自动化转换提供了实用解决方案。 阅读详情

相关推荐

图像去雾新思路:手把手教你复现DEA-Net中的“细节增强卷积”与PyTorch实现

本文详细解析了DEA-Net中的'细节增强卷积'(DEConv)与PyTorch实现,通过多分支差分卷积和重参数化技术,显著提升单图像去雾效果。文章从数学原理到代码实现,手把手指导复现这一创新架构,帮助开发者在保持轻量化的同时实现41dB以上的PSNR指标,适用于自动驾驶、遥感监测等关键领域。

weixin_30323631的博客 505

LeetCode第342题_4的幂

本文解析LeetCode第342题"4的幂",提供了循环除法、位运算和数学三种解法。关键思路包括:循环不断除以4判断余数;利用位运算特性(4的幂是2的幂且1位于奇数位);通过数学性质(4的幂减1是3的倍数)。文章包含C#、Python、C++三种实现,比较了各解法的性能差异,位运算最优(O(1)时间复杂度)。适合初学者理解数学与位运算在算法中的应用,并附常见错误分析和相关题目推荐。

qq_40263592的博客 1389

Open5GS实战指南:Ubuntu 22.04环境下的5G核心网快速部署

本文提供Open5GS在Ubuntu 22.04环境下部署5G核心网的实战指南,涵盖环境准备、MongoDB配置、核心组件安装、WebUI部署及网络调优等关键步骤。通过详细的安装教程和常见问题解决方案,帮助开发者快速搭建开源5G核心网测试环境。

weixin_29202213的博客 538

【力扣LeetCode】3个题:231_2的幂 | 326_3的幂 | 342_4的幂

【力扣LeetCode】3个题231_2的幂 | 326_3的幂 | 342_4的幂

仟墨(郑龙浩)的博客 1005

2023东华大学OJ机试题22-70

东华大学计算机考研复试机试22 约瑟夫环223、整除的尾数24、回文质数25、汽水瓶26、阶乘最后的非0位27、算菜价28、 水果价格29、求奇数的乘积30、求最晚和最早日期31、素数32、计算e33 数字之和34 繁殖问题35 奇妙的数字36 整除的尾数37 黑色星期五38 树39 约瑟夫环40 最大与最小41 环42 求数列项43 最高频率44 三艘船45 回文数46 特殊四位数47 最大值48 数列149 修理牛棚50 按要求输出序列51 部落人乘法52 序列53 双重回文数54 等差数列55 人见人

m0_49263811的博客 2598

LabView实现modbus通讯

labview实现modbus通讯

Lrj的博客 7662

【简单】力扣算法题解析LeetCode342:4的幂

LeetCode 342:4的幂判断。给定32位整数n,判断是否为4的幂(即存在k使4^k = n)。需处理正负数和边界条件。 核心条件 正数且非零 是2的幂(二进制仅1个1) 1位于奇数位(通过0x55555555掩码验证) 解法 位运算三条件判断: n>0 (n & (n-1))==0 (n & 0x55555555)!=0

ylumwd的博客 1027

Laravel 结合 jwt-auth 实现无状态 API 认证(实战解析)

本文详细解析了如何在Laravel框架中结合jwt-auth实现无状态API认证,包括JWT的优势、环境搭建、Token签发与刷新、API路由保护等实战内容。通过具体代码示例和优化技巧,帮助开发者高效解决跨域认证问题,提升系统安全性。

weixin_29315569的博客 210

java数据结构与算法刷题-----LeetCode342. 4的幂

【代码】java数据结构与算法刷题-----LeetCode342. 4的幂。

殷志鹏的博客 1157

Playwright Test Agent 实战:零代码基础也能写自动化测试「喂饭教程」

本文详细介绍了Playwright智能体的三大核心组件:规划智能体设计测试策略,生成智能体转换用例为代码,修复智能体自动修正失败测试。教程包含环境配置步骤、智能体使用方法和实战案例,展示了如何通过自然语言指令快速创建稳定的测试脚本。相比传统方法,Playwright智能体大幅降低测试自动化门槛,提升效率并减少维护成本,使测试人员无需编码基础也能实现高质量的自动化测试。

blues_C的博客 2018

【人脸识别】基于 Gabor+SVM和PCA+SVM实现人脸识别matlab源码含 GUI

1 简介 随着经济的快速发展,互联网的普及,信息安全逐渐被人们所重视。人脸识别技术作为保护信息安全的重要手段之一,也逐渐被研究学者所重视。人脸识别作为计算机视觉技术和生物特征识别技术的一个重要分支,模式识别与人工智能的一个重要领域,其主要任务是对静态图像或动态视频进行识别。如何快速的正确的对人脸进行识别是目前人脸识别课题的一个难题。人脸识别算法的选取直接关系到人脸识别的识别率。 本文首先介绍了国内外人脸识别的发展现状,并对人脸图像预处理方法进行了详细阐述。图像预处理的方法有很多,主要包括:灰度变换、图像锐

qq_59747472的博客 1136

LeetCode342——4的幂

我的LeetCode代码仓:https://github.com/617076674/LeetCode 原题链接:https://leetcode-cn.com/problems/power-of-four/ 题目描述: 知识点:位运算 思路:先将2的幂和4的幂都筛选出来,再筛选出4的幂 (1)先去除小于0的数。 (2)如何筛选出2的幂呢? 对于2的幂,其二进制表示是有规律的,就...

清风阁 649

【Go语言实战】(3) Gin + Gorm 简单备忘录 | 含接口文档

Go语言实战:TodoList 备忘录

面向生活编程 6139

LeetCode 342 4的幂

传送门 题意: 就是判断一个数是不是4的幂 思路: 2的幂已经写烂了, 4的幂的话也是在2的幂的基础上考虑的, 首先要保证是2的幂,然后观察4的幂的性质, 发现2进制的1一定在奇数位上, 那么我们需要一个用来验证奇数位上1的数字, 那就是0x55555555, 因为0x5 = 0101, 所以可以验证, 同理类似的题目都是这样做. AC Code class Solution { public: ...

Anxdada -- 我等风来也等你 542

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

leetcode-342. 4的幂

1. 问题描述 leetcode 342. 4的幂 2. 几种解法 如果 n 是 4 的幂,那么 n 一定也是 2 的幂。因此我们可以首先判断 n 是否是 2 的幂,在此基础上再判断 n 是否是 4 的幂。判断 n 是否是 2 的幂可以参考。由于这一步的方法有很多种,在下面的题解中,我们使用 n & (n - 1) 这一方法进行判断。 1. 二进制表示中1的位置 算法思路:如果 n 是 4 的幂,那么 n 的二进制表示中有且仅有一个 1,并且这个 1 出现在从低位开始的第偶数个二进制位上(这是因

qq_45069496的博客 7308

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LeetCode231. 2的幂 & 326. 3的幂 & 342. 4的幂

LeetCode231. 2的幂 & 326. 3的幂 & 342. 4的幂总结LeetCode231. 2的幂题目解题一:二进制表示解题二:判断是否为最大 2 的幂的约数LeetCode326. 3的幂题目解题一:除法解题二:判断是否为最大 3 的幂的约数LeetCode342. 4的幂题目解题一:二进制表示中 1 的位置解题二:取模性质 总结 常数 m (m 不等于 0),m0=1m ^ 0 = 1m0=1。通用解法是: // javascript var isPowerOfK = fu

412

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LeetCode 342.4的幂 -Java

问题描述 给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。 示例 1: 输入: 16 输出: true 示例2: 输入: 5 输出: false 解题思路 好多种方法可以求解该题. 分析:首先看4的二进制的特点,为1,100,10000…100000000, 1都在奇数位,0的个数为偶数个. 另外一种解释看大佬的是先确认是2的幂,然后对3求余,余1的话就...

Clearlight's Blog 480

力扣342. 4的幂+1. 两数之和

第一百一十五天 --- 力扣342. 4的幂+1. 两数之和题目一思路:模拟细节代码题目二思路:位运算代码 题目一 力扣:1. 两数之和 思路:模拟 1、target是由两个数构成的并且两个数是唯一的答案,我枚举数组中任意一个数之后,只要余下的数出现在了数组里面,就意味着我找到答案了。 2、怎么快速的知道要的数到底在不在,用Hash表存上就行,因为答案要的是出现的位置,所以用unordered_map存储,key是数组中的值,value是位置。 细节 1、要的是数组中两个不同位置上的数,所以需要判断位

qq_45678698的博客 837

LeetCode 342. 4的幂

的整数次幂,计算结果也不会是绝对精度上的整数;因此要根据不同编程语言的精度,取一个足够小的值来判断计算结果是否为整数。整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x。不能为0,且要排除其它数对模运算的影响,先对。给定一个整数,写一个函数来判断它是否是。的幂次,再判断结果是否为整数。但是需要考虑的是,就算。

Mars Not Moon 161

LeetCode第 342 题:4的幂(C++)

342. 4的幂 - 力扣(LeetCode) 常规方法 class Solution { public: bool isPowerOfFour(int num) { if(num < 1) return false; while(num > 1){ if(num % 4) return false; num /= 4; } return num == 1; } }

zj 305

刷题Leetcode342 4的幂

题目链接:https://leetcode-cn.com/problems/power-of-four/ 参考题目解题链接:(刷题Leetcode231 2 的幂) https://blog.youkuaiyun.com/ZZZ___bj/article/details/117402516?spm=1001.2014.3001.5501 题解思路: 普通思想(使用循环): 将“刷题Leetcode231 2 的幂”中2换为4,对4取余,对4整除 进阶思想(不使用循环): 1.判断是否是2的幂(&) 2.

ZZZ___bj的博客 219

leetcode:342. 4的幂

题目来源 LEETCODE 题目描述 题目解析

OceanStar的博客 274

力扣刷题记录——326.3的幂、338. 比特位计数、342. 4的幂、350. 两个数组的交集 II

本专栏主要记录力扣的刷题记录,备战蓝桥杯,供复盘和优化算法使用,也希望给大家带来帮助,博主是算法小白,希望各位大佬不要见笑,今天要分享的是——《326.3的幂、338. 比特位计数、342. 4的幂、350. 两个数组的交集 II》。

weixin_63866037的博客 482

python力扣刷题——简单题

简单类题目分为11组,大概共有250道题目。 一天坚持刷8-10道题目,4.21开始,争取5.20刷完所有简单类题目。 一、数学类(36) 题号 题目及链接 7 整数反转 ...

weixin_45823221的博客 1279

【LeetCode每日一题】342. 4的幂

【LeetCode每日一题】342. 4的幂题目:给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 4 的幂次方需满足...

Francis的博客 376

Leetcode 342. 4的幂 C++

Leetcode 342. 4的幂 题目 给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。 测试样例 示例 1: 输入: 16 输出: true 示例 2: 输入: 5 输出: false 题解 换底公式求幂指数,再求幂,进行判断。详细过程见代码 代码 bool isPowerOfFour(int num) { if(num<=0) return false; int n = log(num)/log(4); n

weixin_43750513的博客 193
上一篇: 推荐 16 条 yyds 的代码规范
下一篇: 再见MybatisPlus,阿里推出新ORM框架!
编程IT圈
博客等级 码龄6年 1130粉丝 544原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程IT圈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值