
(Java 剑指 offer)数组中只出现一次的数字
发布日期:2021-05-07 19:44:21
浏览次数:23
分类:精选文章
本文共 797 字,大约阅读时间需要 2 分钟。
文章目录
一、题目
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
二、题解
对数组进行排序,然后每次比较一对,前后相同,就跳过这对,如果前后不同,则记录该数字,继续按照成对成对的值进行比较,因为已经排好序了,所以数值相同的值都是紧挨着成对出现。
class Solution { public int[] FindNumsAppearOnce(int[] array) { //数组排序 Arrays.sort(array); //记录找到的两个不成对的值 int[] result = new int[2]; int num = 0; int i = 0; while (i < array.length && num < 2) { //当成对时,一次跳过两个 //i+1
三、总结
该题也可以使用 HashMap 解决:
HashMapmap = new HashMap (); if(map.get(array[i])!=null){ map.put(array[i],map.get(array[i])+1); } else{ map.put(array[i],1); } } for(int i:map.keySet()){ if(map.get(i)==1){ res[count] = i; count++; } }
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月15日 08时18分23秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
ORB-SLAM2:LocalMapping线程学习随笔【李哈哈:看看总有收获篇】
2019-03-05
ORB-SLAM2:LoopClosing线程学习随笔【李哈哈:看看总有收获篇】
2019-03-05
牛客练习赛56 D 小翔和泰拉瑞亚(线段树)
2019-03-05
hdu6434 Problem I. Count(数论)(好题)
2019-03-05
NC15553 数学考试(线性DP)
2019-03-05
MySQL两阶段提交、崩溃恢复与组提交
2019-03-05
MySQL隐藏文件.mysql_history风险
2019-03-05
如何通过文件解析MySQL的表结构
2019-03-05
ClickHouse 适用场景调研文档
2019-03-05
C++的编译过程及原理
2019-03-05
Vue——父组件将方法传递给子组件
2019-03-05
文件加密软件对于企业发展而言有何优势?局域网数据防泄密工作应该如何入手?
2019-03-05
Beautiful Soup基础入门
2019-03-05
点击控制盒子移动
2019-03-05
快速排序
2019-03-05
js求阶乘
2019-03-05