回到首页

腾讯

2022.10.16开发笔试

数a的二进制从高位到低位用从表头到表尾的链表表示,数b的二进制从高位到低位用从表尾到表头的链表表示,问a和b异或的结果的二进制从高位到低位用从表头到表尾的链表表示。双向队列中甲挑选头尾中的最大值,乙挑选最小值形成的序列。数组元素x的一次操作指从x变为x的二进制中1的数量的值,问经过k次操作后数组的最小元素和是。01串的第一个字符是1,2字符是1的翻转即0,3-4是1-2的翻转,5-8是1到4的翻转,依此规律不断进行下去,问一段字符串的1的个数。设字符串的区间表示是[l,r],若l是偶数,res=0,res+=1-count1(l-1)%2,count1函数表示数整数的二进制表示中的1的数量,1的数量为偶数,相当于从1字符经过偶数次的翻转,那就是1,l++,若r是奇数,res+=1-count1(r-1)%2,r--,这样把目标区间不规整的边角剪齐,中间的那段规整区域每两个字符必有1个1,1个0,故res+=(r-l+1)/2。

本文创建于2022.10.17/0.13,修改于2022.10.17/0.13