力扣——算法入门计划第十三天

简介: 力扣(LeetCode)是领扣网络旗下专注于程序员技术成长和企业技术人才服务的品牌。源自美国硅谷,力扣为全球程序员提供了专业的IT技术职业化提升平台,有效帮助程序员实现快速进步和长期成长。 此外,力扣(LeetCode)致力于解决程序员技术评估、培训、职业匹配的痛点,逐步引领互联网技术求职和招聘迈向专业化。

 目录

🍕题目

🍔思路

🍟代码

🍕题目

🍔思路

🍟代码


🍕题目

231. 2 的幂

image.png

🍔思路

一个数 n 是 2 的幂,当且仅当 n是正整数,并且 n 的二进制表示中仅包含 1 个 1

所以将 n 的二进制表示中最低位的那个 1 提取出来,再判断剩余的数值是否为 0 即可

一个技巧是n & (n - 1)

其中 & 表示按位与运算。该位运算技巧可以直接将 n二进制表示的最低位 1 移除

image.gifimage.png

🍟代码

class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
        return n > 0 and n & (n - 1) == 0

image.gif

image.png

🍕题目

191. 位1的个数

image.png

🍔思路

我们可以直接循环检查给定整数 n 的二进制位的每一位是否为 1。

具体代码中,当检查第 i位时,我们可以让 n 与 2^i 进行与运算

当且仅当 n的第 i 位为 1 时,运算结果不为 0。

🍟代码

class Solution:
    def hammingWeight(self, n: int) -> int:
        ret = sum(1 for i in range(32) if n & (1 << i)) 
        return ret

image.gif

image.png

相关文章
|
1月前
|
算法
Leetcode 初级算法 --- 数组篇
Leetcode 初级算法 --- 数组篇
38 0
|
16天前
|
存储 算法 Java
leetcode算法题-有效的括号(简单)
【11月更文挑战第5天】本文介绍了 LeetCode 上“有效的括号”这道题的解法。题目要求判断一个只包含括号字符的字符串是否有效。有效字符串需满足左括号必须用相同类型的右括号闭合,并且左括号必须以正确的顺序闭合。解题思路是使用栈数据结构,遍历字符串时将左括号压入栈中,遇到右括号时检查栈顶元素是否匹配。最后根据栈是否为空来判断字符串中的括号是否有效。示例代码包括 Python 和 Java 版本。
|
1月前
|
算法
每日一道算法题(Leetcode 20)
每日一道算法题(Leetcode 20)
27 2
|
1月前
|
算法
【链表】算法题(二) ----- 力扣/牛客
【链表】算法题(二) ----- 力扣/牛客
|
1月前
|
机器学习/深度学习 算法
机器学习入门(三):K近邻算法原理 | KNN算法原理
机器学习入门(三):K近邻算法原理 | KNN算法原理
|
1月前
|
机器学习/深度学习 算法 大数据
机器学习入门:梯度下降算法(下)
机器学习入门:梯度下降算法(下)
|
1月前
|
机器学习/深度学习 算法 API
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
|
1月前
|
算法
【链表】算法题(一) ----- 力扣 / 牛客
【链表】算法题(一) ----- 力扣 / 牛客
|
1月前
|
算法
【顺序表】算法题 --- 力扣
【顺序表】算法题 --- 力扣
|
1月前
|
机器学习/深度学习 算法
机器学习入门:梯度下降算法(上)
机器学习入门:梯度下降算法(上)
下一篇
无影云桌面