9.10扩展性与存储限制(三)——若只有4KB内存可用,该如何打印数组中所有重复的元素
来源:互联网 发布:ws源码 编辑:程序博客网 时间:2024/06/01 20:56
/**
* 功能:给定一个数组,包含1到N的整数,N最大为32000,数组可能含有重复的值,且N的取值不定。
* 若只有4KB内存可用,该如何打印数组中所有重复的元素。
注意:也可参考JAVA内置的BitSet类。
* 功能:给定一个数组,包含1到N的整数,N最大为32000,数组可能含有重复的值,且N的取值不定。
* 若只有4KB内存可用,该如何打印数组中所有重复的元素。
*/
/** * 思路:4KB最多殉职8*4*2^10个比特。比32000大。创建含有32000个比特的位向量,其中每个比特代表一个整数。 * 遇到重复元素,打印出来。 * @param array */public static void checkDuplicates(int[] array){BitSet bs=new BitSet(32000);for(int i=0;i<array.length;i++){int num=array[i];int num0=num-1;//Bitser从0开始,数字从1开始if(bs.get(num0)){System.out.println(num);//打印原值}else{bs.set(num0);//存入num0}}}
class BitSet{int[] bitset;public BitSet(int size){bitset=new int[size>>5];//除以32}public boolean get(int pos){int wordNumber=pos>>5;//除以32int bitNumber=pos&(0x1F);//除以32取余数return (bitset[wordNumber]&(1<<bitNumber))!=0;}public void set(int pos){int wordNumber=pos>>5;//除以32int bitNumber=pos&(0x1F);//除以32取余数bitset[wordNumber]|=(1<<bitNumber);}}
注意:也可参考JAVA内置的BitSet类。
0 0
- 9.10扩展性与存储限制(三)——若只有4KB内存可用,该如何打印数组中所有重复的元素
- 打印数组中所有重复的元素
- 程序员面试金典: 9.10 扩展性与存储限制 10.4限定内存下寻找重复的数
- 9.10扩展性与存储限制(二)——给定一个输入文件,包含40亿个非负整数。产生一个不在该文件中的整数。内存限制:1GB
- 程序员面试金典: 9.10 扩展性与存储限制 10.6给定100亿个网址,如何检测出重复的文件?
- 扩展性与存储限制(二)——给定一个输入文件,包含40亿个非负整数。产生一个不在该文件中的整数。内存限制:1GB
- 打印一个含有重复元素数组的所有子集
- 9.10扩展性与存储限制(一)——对于超大型的社交网站,展示两个人之间的“连接关系”或“社交路径”
- 扩展性与存储限制问题
- 程序员面试金典: 9.10 扩展性与存储限制 10.1如何搭建服务
- 找出数组中重复次数最多的元素并打印
- 找出数组中重复次数最多的元素并打印
- 找出数组中重复次数最多的元素并打印
- Java打印数组中不重复的元素和个数
- 去除数组中所有重复元素
- 打印出大小为n的数组(可能有重复元素)里所有可能的组合
- PHP递归打印数组中所有元素
- 整数数组从1到32000,4KB内存,输出重复的数字
- Android的提交数据到服务器
- KMP算法--next数组
- Android SDK 详解
- Android TextView跑马灯功能实现
- POJ 1833 排列(next_permutation)
- 9.10扩展性与存储限制(三)——若只有4KB内存可用,该如何打印数组中所有重复的元素
- 链表中倒数第k个结点
- Struts2相关知识(一)
- OpenGL ES 镜面光照
- IOS开发之实现App消息推送(最新)
- hdu 5135 Little Zu Chongzhi's Triangles 贪心
- TCP/IP协议学习之七(TCP的保活定时器keepalive选项)
- NoSql
- 使用mciSendCommand循环播放音乐