首页 > 其他分享 >leedcode 位1的数量

leedcode 位1的数量

时间:2024-03-06 11:33:18浏览次数:24  
标签:count int res leedcode li 列表 数量

自己写的

class Solution:
    def hammingWeight(self, n: int) -> int:
        # 将整数 n 转换为二进制字符串,去除前缀 '0b'
        n_str = bin(n)[2:]

        # 用于存储 '1' 的列表
        res_li = []

        # 遍历二进制字符串的每一位
        for i in n_str:
            # 如果当前位是 '1',则加入列表
            if int(i):
                res_li.append(i)

        # 返回 '1' 的个数(列表的长度)
        return len(res_li)

位运算:使用n&=n-1

class Solution:
    def hammingWeight(self, n: int) -> int:
        # 初始化计数器
        count = 0
        
        # 当 n 不为零时,执行循环
        while n:
            # 通过 n &= n - 1 操作,将 n 的最低位 '1' 置零
            n &= n - 1
            
            # 每置零一次,计数器加一
            count += 1
        
        # 返回 '1' 的个数
        return count

 

标签:count,int,res,leedcode,li,列表,数量
From: https://www.cnblogs.com/yyyjw/p/18056171

相关文章

  • 2024-03-06:用go语言,每一种货币都给定面值val[i],和拥有的数量cnt[i], 想知道目前拥有的
    2024-03-06:用go语言,每一种货币都给定面值val[i],和拥有的数量cnt[i],想知道目前拥有的货币,在钱数为1、2、3...m时,能找零成功的钱数有多少?也就是说当钱数的范围是1~m,返回这个范围上有多少可以找零成功的钱数。比如只有3元的货币,数量是5张,m=10。那么在1~10范围上,只有钱数是3、6......
  • leedcode 颠倒二进制
    使用bin函数classSolution:defreverseBits(self,n:int)->int:#将整数n转换为二进制字符串,并用左0填充至32位binary_str=bin(n)[2:].zfill(32)#反转二进制字符串reversed_str=binary_str[::-1]#将反转后的......
  • (34/60)柠檬水找零、根据身高重建队列、用最少数量的箭引爆气球
    柠檬水找零leetcode:860.柠檬水找零贪心法思路遍历一遍数组,只关注面值5、10的钞票的数量每轮判断:如果是5,five++;如果是10,判断还有没有5,有的话five--;如果是20,检查有没有一张10、一张5,ten--,five--。或者三张5,five-=3。贪心:先消耗面值10的钞票,因为它更万能。复杂度分析时间......
  • 汇总前(N)列并对比第(N+1)列的金额(数量)
    在排查财务问题的时候,往往会遇到需要汇总和对比的操作,EXCEL需要用很多公式,还有VLOOKUP。这里直接写个程序来自动对比:本文链接:https://www.cnblogs.com/chaguoguo/p/18051432使用界面如下:即“汇总表的前N项并比对”填N。举例:比如要按物料汇总,并比较金额,两个文档都是一列物......
  • leedcode 多数元素
    自己写的:classSolution:defmajorityElement(self,nums):#创建一个空字典用于存储数字和其出现次数mydict=dict()#遍历输入的列表numsforiinnums:#如果数字i不在字典中,将其添加到字典,并初始化计数为0......
  • leedcode 10进制转换成26进制
    10进制转换成26进制 A对应0:(正常的情况)classSolution:defconvertToTitle(self,columnNumber:int)->str:mydict={}#创建字典,映射数字到字母foriinrange(1,27):mydict[i]=chr(ord('A')+i-1)print(mydi......
  • leedcode 相交链表
    会超出时间限制:classSolution:defgetIntersectionNode(self,headA:ListNode,headB:ListNode)->Optional[ListNode]:cur_b=headBcur_a=headAwhilecur_b!=None:#两个相等ifcur_b==cur_a:r......
  • 代码随想录算法训练营第三十四天| ● 860.柠檬水找零 ● 406.根据身高重建队列 ●
    柠檬水找零 题目链接:860.柠檬水找零-力扣(LeetCode)思路:注意对于20元的情况,有两种找零方式,            头一次见到这种情况,随便加一个标准输出才能通过的样例。classSolution{public:boollemonadeChange(vector<int>&bills){in......
  • leedcode 二叉树的前序遍历
    递归法:classSolution:def__init__(self):#初始化一个实例变量res用于存储前序遍历结果self.res=[]defpreorderTraversal(self,root:Optional[TreeNode])->List[int]:#如果根节点存在ifroot:#检查根......
  • 记录指定英文字母数量的英语单词
    #!/usr/bin/envpython#-*-coding:utf-8-*-"""#File:english-001.py#Time:2024/1/220:37#Author:lrtao2010#version:python3.10.1#Description:记录指定英文字母数量的英语单词"""#导入模块importrequests#下载网页......