磨练 LeetCode 问题之禅:第 117 天——Powers

磨练 LeetCode 问题之禅:第 117 天——Powers

欢迎回到 LeetCode 日常练习系列 . 今天我做了3 简单的 问题。让我们开始!

Photo by 利兹桑切斯-维加斯 on 不飞溅

二的幂

[

2 的幂 - LeetCode

给定一个整数 n,如果它是 2 的幂,则返回 true。否则,返回 false 。整数 n 是 2 的幂,如果…

leetcode.com

](https://leetcode.com/problems/power-of-two/)

见解

  • 我们利用二元运算来非常有效地回答这个问题。如果一个数字是 2 的幂,则它由 1 和后跟零组成。此外,之前的数字是由所有的数字组成的。这两个值没有共同的位,因此按位和 (&) 的结果必须为 0。

三的力量

[

三的幂 - LeetCode

给定一个整数 n,如果它是 3 的幂,则返回 true。否则,返回 false 。整数 n 是 3 的幂...

leetcode.com

](https://leetcode.com/problems/power-of-three/)

见解

  • 在这里我们不能使用这么快的技巧,所以我们应该计算 3 的幂并检查 n 是否是其中之一。节省内存的一种方法是仅根据问题约束计算最大的内存功率。这样,我们只需要检查它是否可以被 n 整除。

四的力量

[

四的幂 - LeetCode

给定一个整数 n,如果它是 4 的幂,则返回 true。否则,返回 false 。整数 n 是 4 的幂,如果…

leetcode.com

](https://leetcode.com/problems/power-of-four/)

见解

  • 由于 4 是 2 的平方,因此以下成立:4^x = 2²^x = (2^x)²。因此,我们只需要检查 n 的平方根是否是 2 的幂,我们已经知道如何有效地做到这一点。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/40066/44373017

posted @ 2022-09-30 17:45  哈哈哈来了啊啊啊  阅读(13)  评论(0编辑  收藏  举报