位运算
cc 提升ing 变优秀ing
有需要搜广推nlp实习生的部门吗?
展开
-
leetcode:5719. 每个查询的最大异或值(周赛,位运算,困难)
题目: 分析: 日狗:原来有分配律: 我当时的做法: 对于arr1 中的某个元素 a 对于arr2中的某个元素 [b1.b2…b3] 我们先只考虑 某一个a (a and b1) xor (a and b2) xor (a and b3) 结果的二进制表示,某一位为0还是为1,由(a and b1),(a and b2) ,(a and b3)对应位置是0还是1决定。 那么当a的某一个位置是0,and的结果一定是0,0异或之后还是0. 那么当a的某一个位置是1,and的结果就是b1,b2,b3原创 2021-04-18 12:48:47 · 309 阅读 · 0 评论 -
477. 汉明距离总和(中等,位运算)
題目: 分析1,统计每一位的1个数:T了。 class Solution: def totalHammingDistance(self, nums: List[int]) -> int: a = len(nums) # 总个数 if len(nums)==0 : return 0 a2 = max(nums) c = [0 for i in range(0,a2)] for i in nu原创 2020-12-09 09:46:50 · 796 阅读 · 1 评论 -
leetcode:218周赛. 连接连续二进制数字(中等,位运算)
题目: 分析: 看完题就放弃了,二进制+取余问题,自己水平不咋样。 思路1:python直接水过: 要点1:用python表示某个数的二进制数:bin(i)[2:] 要点2:将二进制数转化为10进制。int(X,2) 代码1: class Solution: def concatenatedBinary(self, n: int) -> int: s=[] for i in range(1,n+1): s.append(bin(i)原创 2020-12-06 13:57:59 · 211 阅读 · 1 评论 -
leetcode:190. 颠倒二进制位(简单,位运算)
题目: 代码: class Solution: def reverseBits(self, n: int) -> int: ans=0 for _ in range(32): c=1&n n=n>>1 ans=ans<<1 ans+=c return ans原创 2020-11-17 10:51:15 · 74 阅读 · 0 评论 -
leetcode:191. 位1的个数(位运算,简单)
题目: 分析1:自己只能想到的是,每一位进行位运算统计。 class Solution: def hammingWeight(self, n: int) -> int: a=0 b=1 for x in range(32): if b&n!=0: a=a+1 b=b<<1 return a 分析2:答案的秀智商的方法。 利用原创 2020-11-16 09:09:16 · 169 阅读 · 0 评论 -
leetcode:137.:只出现一次的数字 II(中等,位运算)
题目: 分析:除了直接统计个数,自己怎么没有想到数学的方法: 代码: class Solution: def singleNumber(self, nums: List[int]) -> int: return (sum(set(nums))*3-sum(nums))//2 比较nb的为位运算看着头疼,之后突破。 ...原创 2020-11-10 11:07:28 · 67 阅读 · 0 评论 -
洛谷:P1469 找筷子(异或)
题目: 分析:用map: #include<bits/stdc++.h> using namespace std; map<int,int> A; int main() { int m; cin>>m; for(int i=0;i<m;i++) { int c; cin>>c; A[c]=(A[c]+1)%2; } for(int i=1;;i++) if(A[i]) { cout<<i; return 0原创 2020-08-29 00:13:34 · 412 阅读 · 0 评论 -
leetcode:136. 只出现一次的数字(位运算-异或)
题目: 分析: 异或,01为真 a⊕b = (¬a ∧ b) ∨ (a ∧¬b) 异或符号 ^ python的reduce: 代码:原创 2020-05-14 18:24:09 · 181 阅读 · 0 评论