LeetCode实战:2的幂

背景


题目英文

Given an integer, write a function to determine if it is a power of two.

Example 1:

Input: 1
Output: true 
Explanation: 2^0 = 1

Example 2:

Input: 16
Output: true
Explanation: 2^4 = 16

Example 3:

Input: 218
Output: false

题目中文

给定一个整数,编写一个函数来判断它是否是 2 的幂次方。

示例 1:

输入: 1
输出: true
解释: 2^0 = 1

示例 2:

输入: 16
输出: true
解释: 2^4 = 16

示例 3:

输入: 218
输出: false

算法实现

public class Solution
{
    public bool IsPowerOfTwo(int n)
    {
        if(n < 1)
            return false;    
        if (n == 1)
            return true;
            
        int a = n >> 1;
        while (a != 1)
        {
            if (a*2 != n)
                return false;
            n = a;
            a = n >> 1;
        }
        return a*2 == n;
    }
}

实验结果

  • 状态:通过
  • 1108 / 1108 个通过测试用例
  • 执行用时: 52 ms, 在所有 C# 提交中击败了 90.11% 的用户
  • 内存消耗: 13.7 MB, 在所有 C# 提交中击败了 5.77% 的用户

提交结果


相关图文

1. “数组”类算法

2. “链表”类算法

3. “栈”类算法

4. “队列”类算法

5. “递归”类算法

6. “字符串”类算法

7. “树”类算法

8. “哈希”类算法

9. “搜索”类算法

10. “动态规划”类算法

11. “回溯”类算法

12. “数值分析”类算法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章