位运算
lzoom777
这个作者很懒,什么都没留下…
展开
-
leetcode(py)14
1290. 二进制链表转整数难度简单53给你一个单链表的引用结点head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。请你返回该链表所表示数字的十进制值。示例 1:输入:head = [1,0,1]输出:5解释:二进制数 (101) 转化为十进制数 (5)我的:(运行速度远比官方的快)# Definition for singly-linked list.# class ListNode:# def __in...原创 2020-09-11 09:27:26 · 77 阅读 · 0 评论 -
leetcode(py)05
1486. 数组异或操作难度简单8给你两个整数,n和start。数组nums定义为:nums[i] = start + 2*i(下标从 0 开始)且n == nums.length。请返回nums中所有元素按位异或(XOR)后得到的结果。5 ⊕ 3 = ?1.进行异或计算前会把数值都转换为二进制: 5和3转为二进制分别为:0101 、0011(不同为1,相同为0) 0101 xor 0011 ...原创 2020-08-15 21:25:34 · 165 阅读 · 0 评论 -
位运算
位运算一、位运算概念位运算是直接对整数在二进制中进行操作。另我们的电脑电路设计都是基于二进制的,所以在二进制层面效率很高。通常位运算多用在对程序效率要求很高的场景。以下的二进制都以8位为例。第1位是符号位,后面7位是数字位。符号位用0代表非负数,用1代表负数。二、 机器数和真值1、机器数一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00.转载 2020-08-21 15:09:57 · 2730 阅读 · 0 评论 -
leetcode(py)10
1281. 整数的各位积和之差难度简单42给你一个整数n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。示例 1:输入:n = 234输出:15 解释:各位数之积 = 2 * 3 * 4 = 24 各位数之和 = 2 + 3 + 4 = 9 结果 = 24 - 9 = 15我的:class Solution: def subtractProductAndSum(self, n: int) -> int: ..原创 2020-08-21 15:53:44 · 195 阅读 · 0 评论