C#LeetCode刷题之#231-2的幂(Power of Two)
问题
该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3858 访问。
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。
输入: 1
输出: true
解释: 20 = 1
输入: 16
输出: true
解释: 24 = 16
输入: 218
输出: false
Given an integer, write a function to determine if it is a power of two.
Credits:
Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
示例
该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3858 访问。
public class Program {public static void Main(string[] args) {var n = 8;var res = IsPowerOfTwo(n);Console.WriteLine(res);n = 513;res = IsPowerOfTwo2(n);Console.WriteLine(res);Console.ReadKey();}private static bool IsPowerOfTwo(int n) {//先看原值是否能被2整除//若不能整除,不是2的幂;//若能整除,继续往下,直接<=1时为止//最后判断值是否为1即可while(n % 2 == 0 && (n /= 2) > 1) { }return n == 1;}private static bool IsPowerOfTwo2(int n) {//2为10,4为100//2-1为01,4-1为011//对它们进行“与”运算//10 & 01 = 0//100 & 011 = 0//得出结论,如果一个数n为2的幂,则n & (n - 1) = 0return ((n > 0) && (n & (n - 1)) == 0);}}
以上给出2种算法实现,以下是这个案例的输出结果:
该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3858 访问。
True
False
分析:
显而易见,IsPowerOfTwo 的时间复杂度为: ,IsPowerOfTwo2 的时间复杂度为:
。
C#LeetCode刷题之#231-2的幂(Power of Two)相关推荐
- leetcode刷题笔记342 4的幂
题目描述: 给定一个整数 (32位有符整数型),请写出一个函数来检验它是否是4的幂. 示例: 当 num = 16 时 ,返回 true . 当 num = 5时,返回 false. 问题进阶:你能不 ...
- C#LeetCode刷题-位运算
位运算篇 # 题名 刷题 通过率 难度 78 子集 67.2% 中等 136 只出现一次的数字 C#LeetCode刷题之#136-只出现一次的数字(Single Number) 53.5% 简单 1 ...
- C#LeetCode刷题-数学
数学篇 # 题名 刷题 通过率 难度 2 两数相加 29.0% 中等 7 反转整数 C#LeetCode刷题之#7-反转整数(Reverse Integer) 28.6% 简单 8 字符串转整数 (a ...
- LeetCode刷题笔记汇总
LeetCode刷题笔记汇总 第一次刷LeetCode写的一些笔记. 1.两数之和 3.无重复字符的最长子串 15.三数之和 18.四数之和 19.删除链表的倒数第 N 个结点 20.有效的括号 21 ...
- LeetCode刷题Python实录
使用Python的LeetCode刷题 前言 题目 1408. 数组中的字符串匹配 508. 出现次数最多的子树元素和 1089. 复写零 剑指 Offer 14- I. 剪绳子 1175. 质数排列 ...
- LeetCode 刷题之路(python版)
摘自:https://blog.csdn.net/qq_32384313/article/details/90745354 LeetCode 刷题之路(python版) 小坏wz 2019-06-02 ...
- 个人LeetCode刷题记录(带题目链接及解答)持续更新
Leetcode 刷题 注:~[完成]代表还有一些方法没看,最后再看 一.一些需要重刷的典型题: 1.快速排序,归并排序,堆排序(递归的思想) 2.链表中的回文链表,其中的快慢指针,多看,多练 3.链 ...
- LeetCode刷题实战50:Pow(x, n)
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- LeetCode刷题记录15——21. Merge Two Sorted Lists(easy)
LeetCode刷题记录15--21. Merge Two Sorted Lists(easy) 目录 LeetCode刷题记录15--21. Merge Two Sorted Lists(easy) ...
- LeetCode刷题记录14——257. Binary Tree Paths(easy)
LeetCode刷题记录14--257. Binary Tree Paths(easy) 目录 前言 题目 语言 思路 源码 后记 前言 数据结构感觉理论简单,实践起来很困难. 题目 给定一个二叉树, ...
最新文章
- Windows 外壳扩展编程入门实例
- oracle批次处理数据_Oracle大批量删除数据方法(转)
- MySQL+Amoeba实现数据库主从复制和读写分离
- Python标准库--time模块的详解
- 深入Session2
- Java NIO框架 Mina、Netty、Grizzly
- poj 2485 Highways 超级大水题 kruscal
- 玩转RecyclerView | 实现子视图叠加 | 3D画廊效果 | 高级动效 | Android 3D坐标系介绍
- TSMaster1.4.2补丁包发布
- FIR内插滤波器的FPGA实现(一)-matlab实现
- python+django大学生专业社团信息管理系统
- Android 10.0 Activity启动详解(二)
- phpstorm破解后,运行一段时间后突然有提示没有破解.
- 报错Failure executing javac, but could not parse the error原因分析
- FreeNOS-kernel目录下boot.S、链接脚本kernel.ld文件分析(四)
- 立创开源 BGA221芯片开发
- BMS 产品控制策略和整车交互策略
- 联想r720自带杜比驱动下载_暑假追剧补习神器,联想M10 PLUS评测
- 计算机毕业论文Java项目源码下载javaweb图书借阅管理系统
- rm 命令删除除指定文件外的所有文件,非常简单