【Java】位运算
来源:互联网 发布:厦门市网络爬虫 编辑:程序博客网 时间:2024/05/22 09:02
数组A包含了0到n的所有整数,但其中缺了一个。在这个问题中,只用一次操作无法取得数组A里某个整数的完整内容。此外,数组A的元素皆以二进制表示,唯一可用的访问操作是“从A[i]取出第j位数据”,该操作时间复杂度为常数。
请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?
找出0到n之间缺失的整数,可以将数字求和在于0到n的数字之和做减法,差值就是缺失的数字
那么怎么求出每个数字呢?由于我们可以去除A[i]的每一位,那么可以将每一位左移j位再相加求和,就得到每个数字的值了。
但这样做的时间是n length(n), length为n的位数,length(n) = log2(n), 时间复杂度是O(nlog2(n)),不是要求的O(n)
0 0
- Java 中的位运算
- JAVA 中的位运算
- Java 中的位运算
- Java位运算符
- 转帖 java位运算
- Java 位运算符
- Java 位运算符
- java 位运算
- Java 位运算符
- JAVA位运算
- Java 位运算符
- Java的位运算
- Java 位运算符
- Java 位运算
- java中的位运算
- java位运算
- java位运算例子
- Java 位运算符
- hadoop2.7【单节点】单机、伪分布、分布式安装指导
- linux下Epoll实现简单的C/S通信(转载)
- vi命令大全
- oracle递归查询实例
- 对烦人的findViewById说再见吧!
- 【Java】位运算
- 黑马程序员--IOS基础第七天(C语言)
- Android c/c++ 应用向linux 平台迁移运行
- public ,protected,private
- linux curl命令详解
- 黑马程序员--IOS基础第八天(C语言)
- 20150715再一次被滚烫的开水烫伤
- redis注册成windows服务
- c++顺序容器之vector