位运算
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 · 331 阅读 · 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 · 802 阅读 · 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 · 224 阅读 · 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 · 83 阅读 · 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 · 184 阅读 · 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 · 75 阅读 · 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 · 423 阅读 · 0 评论 -
leetcode:136. 只出现一次的数字(位运算-异或)
题目:分析:异或,01为真a⊕b = (¬a ∧ b) ∨ (a ∧¬b)异或符号 ^python的reduce:代码:原创 2020-05-14 18:24:09 · 198 阅读 · 0 评论