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. “數值分析”類算法

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