当前位置: 首页 > news >正文

力扣刷题 day54:10-24

1.十进制整数的反码

每个非负整数 N 都有其二进制表示。例如, 5 可以被表示为二进制 "101",11 可以用二进制 "1011" 表示,依此类推。注意,除 N = 0 外,任何二进制表示中都不含前导零。

二进制的反码表示是将每个 1 改为 0 且每个 0 变为 1。例如,二进制数 "101" 的二进制反码为 "010"。

给你一个十进制数 N,请你返回其二进制表示的反码所对应的十进制整数。

方法一:位运算 

#方法一:位运算
def bitwiseComplement(n):tem=2c=nwhile c>1:c>>=1tem<<=1  #找到最高二进制位1的位置return n^(tem-1)  #异或运算,相同为0,相异为1,全为1的数进行异或

2.将数字变成 0 的操作次数

给你一个非负整数 num ,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。

方法一:位运算 

#方法一:位运算
def numberOfSteps(num):res=0while num:res+=(num&1)+(num>1) #判断最右边是不是1和num是不是大于1,为1进行两步操作num>>=1return res

3.根据数字二进制下 1 的数目排序 

给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。

如果存在多个数字二进制中 1 的数目相同,则必须将它们按照数值大小升序排列。

请你返回排序后的数组。

方法一:排序+位运算 

#方法一:排序+位运算
def sortByBits(arr):def count1(n):res=0while n :res+=n&1n>>=1return res #计算1的个数return sorted(arr,key=lambda x: (count1(x),x)) 

http://www.lryc.cn/news/204720.html

相关文章:

  • Java基础篇 | Java8流式编程
  • SolidworksSimulation完成对压力容器的强度分析
  • 【C++】继承 ⑨ ( 继承中成员变量同名的处理方案 )
  • Python报错:‘EagerTensor‘ object has no attribute ‘reshape‘
  • docker-compose手册
  • 【珠峰 WEB 前端架构师课程】学习笔记 100 篇(完结)
  • Java线程中sleep()、wait()、yield()、join()方法的使用
  • 【机器学习】数据均衡学习笔记
  • 【软件教程】如何用C++交叉编译出能在Android运行的ELF程序或so动态库
  • 进阶JAVA篇- Map 系列集合的遍历方法与常用API
  • Auth.js:多合一身份验证解决方案 | 开源日报 No.60
  • SpringBoot整合Activiti7——任务监听器(七)
  • 电解电容寿命与哪些因素有关?
  • Opencv-图像插值与LUT查找表
  • 我为什么写博客?写博客给我带来了什么?
  • jdk11的HttpClient
  • Redis的优势
  • C++ string 类的其他操作
  • structs2 重构成SpringBoot架构
  • 【MATLAB源码-第56期】基于WOA白鲸优化算法和PSO粒子群优化算法的三维路径规划对比。
  • 【WinForm详细教程一】WinForm中的窗体、Label、TextBox及Button控件、RadioButton和CheckBox、ListBox
  • 【SwiftUI模块】0060、SwiftUI基于Firebase搭建一个类似InstagramApp 3/7部分-搭建TabBar
  • PureFlash云原生存储部署方法
  • SqueezeNet 一维,二维网络复现 pytorch 小白易懂版
  • Java 数据结构
  • python sqlalchemy(ORM)- 02 表关系
  • Http长连接同一个socket多个请求和响应如何保证一一对应?
  • Standford Compiler Course Assignment 2
  • 基于Java的校园论坛管理系统设计与实现(源码+lw+部署文档+讲解等)
  • 谈谈你对Spring的理解