当前位置: 首页 > news >正文

杭州网站排名优化公司个人论坛类网站

杭州网站排名优化公司,个人论坛类网站,iis7 网站打不开,丢盖网logo在线设计1.用4KB内存寻找重复元素 题目:给定一个数组,包含从1到N的整数,N最大为32000,数组可能还有重复值,且N的取值不定,若只有4KB的内存可用,该如何打印数组中所有重复元素。 分析: 本身是…

1.用4KB内存寻找重复元素

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

分析:

        本身是一道海量数据问题的热身题,如果去掉“只有4KB”的要求,我们可以先创建一个大小为N的数组,然后将这些数据放进来,但是这里数组最大为32KB,而题目有4KB的内存限制,我们就必须先确定该如何存放这个数组。

        如果只有4KB的空间,那么只能寻址`8*4*2^10`个比特,这个值比32000要大的,因此我们可以创建32000比特的位向量(比特数组),其中一个比特位置就代表一个整数。

        利用这个位向量,就可以遍历访问整个数组。如果发现数组元素是v,那么就将位置为v的设置为1,碰到重复元素,就输出一下。

        创建一个长度为32000的数组,每个位置存储0或者1,因为要存的最大值可能是32000,所以我们可以要存多大的数,就在对应的位置0换成1即可,比如存1,数组第1位就是1,索引是0,其余位置是0。存100数组第100位就是1,索引是99,其余位置是0。存10000数组第9999位是1,其余位置是0。如果在存某个数的时候发现这个位置是1,那么这值就重复,将这个值输出。

int是32位,占空间4B,1B=8bit,所以4kb空间就有超过4000*8个bit,所以数组长度是32000>>5,每个位置可以代表32个bit位,

代码示例

   public void checkDuplicates(int[] array) {BitSet bs = new BitSet(320000);for (int i = 0; i < array.length; i++) {int num = array[i];int num0 = num - 1;if (bs.get(num0)) {System.out.println(num);} else {bs.set(num0);}}}class BitSet {int[] bitset;public BitSet(int size) {this.bitset = new int[size >> 5];}boolean get(int pos) {int wordNumber = (pos >> 5);//除以32int bitNumber = (pos & 0x1F);//取余32return (bitset[wordNumber] & (1 << bitNumber)) != 0;}void set(int pos) {int wordNumber = (pos >> 5);//除以32int bitNumber = (pos & 0x1F);//取余32bitset[wordNumber] |= 1 << bitNumber;}}

http://www.yayakq.cn/news/813576/

相关文章:

  • 在线网站流量查询做服装外贸的网站
  • 网站建设技术选择哪个网站是做安全教育
  • html 好的网站建设网站 宣传平台
  • 奖励网站代码浙江网站备案加急
  • 网站改版介绍网站建设项目计划书
  • 什么网站做简历最好粉色做网站背景图片
  • 做设计找图有哪些网站怀化网站优匿
  • 专业做调查的网站单页面网站制作教程
  • html5网站开发实例教程西安 网站 高端 公司
  • 太原网站开发工程师动漫网站建站目的
  • 横沥网站制作招聘怎样创建网站域名平台
  • 可以建网站的公司如何注册公司企业邮箱
  • 邢台手机网站建设多少钱网站设计所用的软件
  • 建网站申请最好看的直播免费的
  • 华亭县门户网站wordpress如何实现多语言版本
  • 网页链接成整体通过网站舞阳网站建设
  • 秦皇岛高端网站设计ui设计无经验找工作
  • 微信知彼网络网站建设做彩票网站被捉将受到什么惩罚
  • 太原做网站排名织梦招商加盟网站源码
  • wordpress教程下载苏州seo培训
  • 网站怎么做电脑系统公司企业邮箱有哪些
  • 正规的丹阳网站建设广东省建筑工程信息网
  • 怎么搭建本地网站东平县建设局网站
  • 网站做系统九一赣州人才网
  • 中国建设银行陕西省分行网站建立企业网站 优帮云
  • 兰州网站建设张家界做网站找哪家好
  • 文案转行做网站编辑网站的建设的项目介绍怎么写
  • 北京小程序网站制作百度点击排名收费软件
  • 网站前台设计过程宿迁东岸网络技术有限公司
  • 湖南长沙网站建局域网网站建设的步骤过程