每日算法之数组中只出现一次的两个数字
2023-03-31 10:41:05 时间
JZ56 数组中只出现一次的两个数字
题目
一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字
思路
算法实现
既然有两个数字只出现了一次,我们就统计每个数字的出现次数,利用哈希表的快速根据key值访问其频率值。
具体做法:
step 1:遍历数组,用哈希表统计每个数字出现的频率。
step 2:然后再遍历一次数组,对比哈希表,找到出现频率为1的两个数字。
step 3:最后整理次序输出。
代码
package mid.JZ56数组中只出现一次的两个数字;
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param array int整型一维数组
* @return int整型一维数组
*/
public int[] FindNumsAppearOnce (int[] array) {
// write code here
if(array.length == 0) return new int[0];
HashMap<Integer, Integer> map = new HashMap<>();
int[] result = new int[2];
for (int value : array) {
if (!map.containsKey(value)) {
map.put(value, 1);
} else {
map.put(value, map.get(value) + 1);
}
}
int index = 0;
for (Integer key: map.keySet()) {
if (map.get(key) == 1) {
result[index] = key;
index++;
}
if (index == 2) break;
}
Arrays.sort(result);
return result;
}
public static void main(String[] args) {
int[] ints = new Solution().FindNumsAppearOnce(new int[]{1, 4, 1, 6});
System.out.println(Arrays.toString(ints));
}
}
相关文章
- 金融服务领域的大数据:即时分析
- 影响大数据、机器学习和人工智能未来发展的8个因素
- 从0开始构建一个属于你自己的PHP框架
- 如何将Hadoop集成到工作流程中?这6个优秀实践必看
- SEO公司使用大数据优化其模型的5种方法
- 关于Web Workers你需要了解的七件事
- 深入理解HTTPS原理、过程与实践
- 增强分析:数据和分析的未来
- PHP协程实现过程详解
- AI专家:大数据知识图谱——实战经验总结
- 关于PHP的错误机制总结
- 利用数据分析量化协同过滤算法的两大常见难题
- 怎么做大数据工作流调度系统?大厂架构师一语点破!
- 2019大数据处理必备的十大工具,从Linux到架构师必修
- OpenCV中的KMeans算法介绍与应用
- 教大家如果搭建一套phpstorm+wamp+xdebug调试PHP的环境
- CentOS下三种PHP拓展安装方法
- Go语言HTTP Server源码分析
- Go语言HTTP Server源码分析
- 2017年4月编程语言排行榜:Hack首次进入前五十