2019独角兽企业重金招聘Python工程师标准>>>

/**
 * 功能:给定一个数组,包含1到N的整数,N最大为32000,数组可能含有重复的值,且N的取值不定。
 * 若只有4KB内存可用,该如何打印数组中所有重复的元素。

*/

[java] view plain copy

  1. /**
  2. * 思路:4KB最多殉职8*4*2^10个比特。比32000大。创建含有32000个比特的位向量,其中每个比特代表一个整数。
  3. * 遇到重复元素,打印出来。
  4. * @param array
  5. */
  6. public static void checkDuplicates(int[] array){
  7. BitSet bs=new BitSet(32000);
  8. for(int i=0;i<array.length;i++){
  9. int num=array[i];
  10. int num0=num-1;//Bitser从0开始,数字从1开始
  11. if(bs.get(num0)){
  12. System.out.println(num);//打印原值
  13. }else{
  14. bs.set(num0);//存入num0
  15. }
  16. }
  17. }

[java] view plain copy

  1. class BitSet{
  2. int[] bitset;
  3. public BitSet(int size){
  4. bitset=new int[size>>5];//除以32
  5. }
  6. public boolean get(int pos){
  7. int wordNumber=pos>>5;//除以32
  8. int bitNumber=pos&(0x1F);//除以32取余数
  9. return (bitset[wordNumber]&(1<<bitNumber))!=0;
  10. }
  11. public void set(int pos){
  12. int wordNumber=pos>>5;//除以32
  13. int bitNumber=pos&(0x1F);//除以32取余数
  14. bitset[wordNumber]|=(1<<bitNumber);
  15. }
  16. }

注意:也可参考JAVA内置的BitSet类。

转载于:https://my.oschina.net/u/2822116/blog/792609

若只有4KB内存可用,该如何打印数组中所有重复的元素相关推荐

  1. java打印数组中不重复的数字_java-在数组中查找重复项并仅打印一次

    我试图遍历数组并查找所有重复多次的数字: 例如:如果有1 1 2 3 4 它应打印出" 1重复不止一次"的字样 这是我的代码,到目前为止,我一直在尝试,但是它会打印所有重复项并继续 ...

  2. python 打印数组第一行_打印数组中的第一个值而不是只打印第一个字母?(Python)...

    我使用Python将SQLite3数据库中的数据追加到数组中.现在我有了一个数组,我正试图以如下格式打印附加数据:print "Team: " + new_array[0][0] ...

  3. python输出列表元素_在Python中分别打印列表中的每一个元素方法

    在Python中分别打印列表中的每一个元素方法 更新时间:2018年11月07日 15:12:03 作者:wintersshi 今天小编就为大家分享一篇在Python中分别打印列表中的每一个元素方法, ...

  4. java去重复元素并打印_Java打印数组中重复元素

    Java打印数组中重复元素 1 说明 在此程序中,我们需要打印数组中存在的重复元素.这可以通过两个循环来完成.第一个循环将选择一个元素,第二个循环将通过将所选元素与其他元素进行比较来遍历整个数组.如果 ...

  5. 一个简单的方式打印数组中的所有值

    用简单的方式打印数组中的所有值,即利用 Arrays类的 tostring方法. 调用 Arrays.toString(a),返回一个包含数组元素的字符串,这些元素被放置在括号内,用逗号分隔. 要想打 ...

  6. 动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有

     1定义接口: Num.h #ifndef_NUM_H_ #define_NUM_H_ #include<stdio.h> #include<stdlib.h> /**** ...

  7. python打印数组中期望元素的位置

    http://blog.csdn.net/goofysong/article/details/52160012 print np.where(arr==the number you want) imp ...

  8. c语言打印数组中的汉字

    char s[20]={"C语言延时输出"};cout<<strlen(s)<<endl;char chip[3];int i=0;while(s[i]!= ...

  9. java 打印数组数字,Java数组打印出奇怪的数字和文本

    本问题已经有最佳答案,请猛点这里访问. 我是编程新手.我相信这个问题的答案是肯定的,但我不知道要搜索什么. 好的,我马上去. 这是我的代码: int[] arr; arr = new int[5]; ...

最新文章

  1. 皮一皮:狭路相逢勇者胜...
  2. 奇怪-正则匹配的test函数
  3. 用户运营的三种思维层级,你在哪一层?
  4. 源码编译安装mysql
  5. 打入硅谷的局外人|Decode the Week
  6. 1.6 动态数据抓取 -- PyQuery详解
  7. “格式工厂”音频剪辑快速入门
  8. [C++11]使用using和typedef给模板定义别名
  9. java核心面试_不正确的核心Java面试答案
  10. linux网络唤醒,如何在Ubuntu Server 18.04中启用网络唤醒(WOL)
  11. server sql 众数_sql 语句系列(众数中位数与百分比)[八百章之第十五章]
  12. 基本Linux命令的用法
  13. 为什么说苹果是唯一在乎你隐私的科技公司?
  14. 用pycharm+flask 建立项目以后运行出现ImportError: No module named flask-login问题
  15. 什么是U盘量产工具?量产基本知识
  16. FileZilla 使用技巧
  17. 基于STM32设计的NB-IOT电量采集系统(超级详细)--1.Onenet平台配置及M5311配置
  18. 推荐 DBeaver 数据库管理工具 PD数据库建模
  19. 检测到硬盘错误:在MBR硬盘上没有找到可以引导的分区
  20. Android之按钮点击事件(单击、双击、长按等)

热门文章

  1. 为 Joomla 而生的 Kunena 论坛安装手册
  2. Git常用命令的使用方法
  3. 刀塔传奇公会管理系统 ------ Python界面访问Pgsql
  4. CentOS 6.4 中yum命令安装php5.2.17
  5. C#数组和集合专题2(Array)
  6. Git使用方法(二)-远程库与分支
  7. 评论计算机课程讲师教学质量,浅谈信息技术课堂评价的策略
  8. mysql索引b树和hash_B树索引和Hash索引的应用场景和区别(转载)
  9. 1088红包数字代表什么_微信发红包的数字含义?各种红包代表着什么,你有没有发错呢?...
  10. mysql 模糊查询 s_MySql反向模糊查询