当前位置: 首页 > news >正文 算法通关村-----位运算在海量元素中查找重复元素的妙用 news 2025/7/28 0:37:10 用4KB内存寻找重复元素 问题描述 给定一个数组,包含从1到N的整数,N最大为32000,数组可能还有重复值,且N的取值不定,若只有4KB内存可用,如何打印数组中所有的重复元素。 问题分析 Java中存储整数使用int或者long,这里使用int就可以了。每一个int整数占四个字节,320004B=128KB,题目中要求我们只使用4KB,很明显我们不能使用int来存储,最为节省空间的存储方式就是使用位来存储,即bit,4KB可以寻址48*2^10=32768>32000,即对于从1到N的整数,我们可以遍历数组,如果某个整数第一次出现,将其对应的下标置1,如果该整数再次被遍历到且下标为1,则判定为重复。 代码实现 public void checkDuplicatesIn32000(int[] array) {BitSet bitSet = new BitSet(32000);for (int i = 0; i < array.length; i++) {int num = array[i];int num0 = num - 1;if(bitSet.get(num0)){System.out.println(num);}else {bitSet.set(num0);}}} 查看全文 http://www.lryc.cn/news/162252.html 相关文章: RabbitMQ: Publish/Subscribe结构 单片机-蜂鸣器 华为云云耀云服务器L实例评测 | 分分钟完成打地鼠小游戏部署 Android——数据存储(二)(二十二) appium环境搭建 十五、Webpack打包图片-js-Vue、Label命令、resolve模块解析 ARM指令集--数据处理指令 Excel embed into a webpage uniapp点击事件在小程序中无法传参 ssprompt:一个LLM Prompt分发管理工具 修复 ChatGPT 发生错误的问题 《热题100》字符串、双指针、贪心算法篇 大数据组件Sqoop-安装与验证 运算符重载(个人学习笔记黑马学习) 2023.9.6 Redis 的基本介绍 2023-09-08力扣每日一题 adb-linux 调试桥 入门人工智能 —— 使用 Python 进行文件读写,并完成日志记录功能(4) 使用Caffeine实现帖子的缓存来优化网站的运行速度 Webpack5 搭建Vue项目(进阶版) 论文阅读:Distortion-Free Wide-Angle Portraits on Camera Phones 力扣每日一题---207. 课程表 在Kubernetes环境中有关Nginx Ingress与API Gateway的连接问题 c语言练习44:深入理解strstr 渗透测试漏洞原理之---【业务安全】 CentOS查看CPU、内存、网络流量和磁盘 I/O 无人机航线规划 react中受控组件与非受控组件 【网络教程】如何解决Docker删除镜像和容器后磁盘空间未释放的问题 Python中的进度条显示方案
用4KB内存寻找重复元素 问题描述 给定一个数组,包含从1到N的整数,N最大为32000,数组可能还有重复值,且N的取值不定,若只有4KB内存可用,如何打印数组中所有的重复元素。 问题分析 Java中存储整数使用int或者long,这里使用int就可以了。每一个int整数占四个字节,320004B=128KB,题目中要求我们只使用4KB,很明显我们不能使用int来存储,最为节省空间的存储方式就是使用位来存储,即bit,4KB可以寻址48*2^10=32768>32000,即对于从1到N的整数,我们可以遍历数组,如果某个整数第一次出现,将其对应的下标置1,如果该整数再次被遍历到且下标为1,则判定为重复。 代码实现 public void checkDuplicatesIn32000(int[] array) {BitSet bitSet = new BitSet(32000);for (int i = 0; i < array.length; i++) {int num = array[i];int num0 = num - 1;if(bitSet.get(num0)){System.out.println(num);}else {bitSet.set(num0);}}} 查看全文 http://www.lryc.cn/news/162252.html 相关文章: RabbitMQ: Publish/Subscribe结构 单片机-蜂鸣器 华为云云耀云服务器L实例评测 | 分分钟完成打地鼠小游戏部署 Android——数据存储(二)(二十二) appium环境搭建 十五、Webpack打包图片-js-Vue、Label命令、resolve模块解析 ARM指令集--数据处理指令 Excel embed into a webpage uniapp点击事件在小程序中无法传参 ssprompt:一个LLM Prompt分发管理工具 修复 ChatGPT 发生错误的问题 《热题100》字符串、双指针、贪心算法篇 大数据组件Sqoop-安装与验证 运算符重载(个人学习笔记黑马学习) 2023.9.6 Redis 的基本介绍 2023-09-08力扣每日一题 adb-linux 调试桥 入门人工智能 —— 使用 Python 进行文件读写,并完成日志记录功能(4) 使用Caffeine实现帖子的缓存来优化网站的运行速度 Webpack5 搭建Vue项目(进阶版) 论文阅读:Distortion-Free Wide-Angle Portraits on Camera Phones 力扣每日一题---207. 课程表 在Kubernetes环境中有关Nginx Ingress与API Gateway的连接问题 c语言练习44:深入理解strstr 渗透测试漏洞原理之---【业务安全】 CentOS查看CPU、内存、网络流量和磁盘 I/O 无人机航线规划 react中受控组件与非受控组件 【网络教程】如何解决Docker删除镜像和容器后磁盘空间未释放的问题 Python中的进度条显示方案