一个大数组,在1到25000之间,只有4K memory, 打印出其中正好只出现过一次的数。没出现过,出现过2次,3次,或更多,都不打印。

solutions:

1)位图法,但每个数有3个状态:0,1,>1.因此需要2 bit,  (25000 * 2) /(8*1024) = 6.1k,内存占用符合要求。

2)压缩,解法1中,用2个bit表示3种状态,事实上浪费了一个状态(2bit可以表示4种状态),因此可以考虑多个数共用几个bit表示状态,如:

5个数共用4个bit来表示,则(25000/5) * 4 / ( 8*1024) = 2.44k,内存占用符合要求,但是代码相对写起来恶心些。

3)时间换空间,还是每个整数用2个bit表示,但分多次打印,如分5次扫描:第1次只扫1~5000内的整数,第2次只扫5001~10000的。。。

每次用内存:5000*2/(8*1024) = 1.22k,逻辑比较简单,就是慢些。

转载于:https://www.cnblogs.com/catch/archive/2013/02/14/2912614.html

找出数组中只出现过一次的数相关推荐

  1. 找出数组中只出现了一次的数字(Java)

    找出数组中只出现了一次的数字 题目 题目分析 方法1 方法2 方法3 代码实现 主方法 方法1 第一种:使用计数器的 第二种:不使用计数器 方法2 方法3 总结 题目 给定一个非空整数数组,除了某个元 ...

  2. 找出数组中只出现一次的数

    case1 一个整形数组中除了一个数字之外,其他数字都出现了两次,请找出这个数.要求时间复杂度O(n),空间复杂度O(1). 思路: 关键词:一次,两次. 出现两次会带来什么效果?联想到异或,一个数与 ...

  3. 找出数组中只出现1次的两个元素

    通过位运算可以得到只出现1次的唯一元素,但是如果有两个元素出现1次,则需要更进一步. 对整个数组依次进行异或运算后,得到的是两个出现一次元素的异或,之后将这两个元素的最后面是1的位记录下来,并以此为标 ...

  4. 找出数组中的一个数,在该数的左边他是最大的,在该数的右边他是最小的。如何求这个数

    首先.假设数组为nums[] = {1, 4 3, 6, 8,10}.很明显可以看出 6.8大于左边所有数缺小于右边所有数.那如果用代码表示思路是怎么样子的? 我们可以开一个leftmax数组和一个r ...

  5. 微策略2011校园招聘笔试题(找出数组中两个只出现一次的数字)

    1.8*8的棋盘上面放着64个不同价值的礼物,每个小的棋盘上面放置一个礼物(礼物的价值大于0),一个人初始位置在棋盘的左上角,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,结束位置在棋盘的右下 ...

  6. 找出数组中出现次数超过一半的数

    算法--找出数组中出现次数超过一半的数      每当我看到经典的算法题,就怀念高中,感觉很多算法题就是高中的题目,谁叫哥只读了个专科,高数基本相当没学.      有空要看看高数啊,想当年数学那是相 ...

  7. [LeetCode] Find All Numbers Disappeared in an Array 找出数组中所有消失的数字

    Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot ...

  8. 找出数组中最大值次大值的一次遍历方法(C++)

    写在前面 昨天做了一道LeetCode题(747. 至少是其他数字两倍的最大数 - 力扣(LeetCode) (leetcode-cn.com)), 大致意思是找出数组中的最大值和次大值并返回最大值索 ...

  9. java 数组不重复_java如何找出数组中的不重复数字

    找出数组中不重复的一个数字,题目大致是这样的:int[] a = { 1, 2, 3, 4, 3, 2, 1 }; 在线视频教程推荐:java在线学习 解决办法是:public static int ...

最新文章

  1. 自学python要到什么程度-学好深度学习,Python 得达到什么程度?
  2. 【Latex】怎么写中文?
  3. 分析IBASE save 白屏问题
  4. 关于Java的常见误解
  5. 【电路补习笔记】2、电容的参数与选型
  6. js datagrid 移动去重
  7. vue-cropper 自定义旋转任意角度
  8. 机器学习-支持向量机原理
  9. 雷达系统概述--距离分辨率
  10. 2020晓庄学院专转本C语言考试试卷,南京晓庄学院五年一贯制专转本模拟考试c语言...
  11. dB dBm概念及计算
  12. 3d Max 2014设置背景没有锁定选项的解决方法
  13. C++中的数学函数汇总
  14. v-show和v-if有什么区别
  15. 竟然可以在Windows下用Nvim写代码?1.基础配置环境与安装nvim
  16. 2022极米投影和米家投影哪个好 家用智能投影仪对比
  17. 英语各种发音技巧汇总!!!
  18. android 系统 dpi设置,安卓系统DPI的划分
  19. 轩辕传奇服务器合并信息,【数据更新】12月11日12月13日部分服务器数据互通公告...
  20. 20155314 2016-2017-2 《Java程序设计》实验四 Android程序设计

热门文章

  1. 如何使用Angular JS设置bootstrap navbar活动类?
  2. AngularJS app.run()文档?
  3. React中的state和props有什么区别?
  4. linux安装之后缺少命令,CentOS7安装成功后缺少命令的解决办法
  5. activiti流程消息事件触发messageEventReceived,MessageCatchingEvent 及消息启动流程
  6. GPS/BDS:AGPS定位基本机制
  7. 实验4-1-9 猜数字游戏 (15 分)
  8. 015-请问如果想进行bug的测评,怎么去评测bug?
  9. 嵌入式系统与人工智能
  10. 我的前端笔记之 meta 篇