Leetcode 231. 2的幂 解题思路及C++实现
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 231. 2的幂 解题思路及C++实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
方法一:遞歸,暴力解法
解題思路:
如果 n 是 0 或 1,需要做一個判斷,如果n大于1,則可以對其取余,再做判斷。
class Solution { public:bool isPowerOfTwo(int n) {if(n == 0) return false;if(n == 1) return true;if(n % 2 == 1) return false;else return isPowerOfTwo(n / 2);} };?
方法二:位運算,技巧型
解題思路:
2的冪一定是大于0的,然后對于數n,其二進制數應該只有一個1,所以,如果n是2的冪, n&n-1 一定是0。
class Solution { public:bool isPowerOfTwo(int n) {return n > 0 && !(n & n-1);} };?
?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Leetcode 231. 2的幂 解题思路及C++实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode 191. 位1的个数
- 下一篇: Leetcode 268. 缺失数字 解