(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 解决:

HashMap
map = 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++; } }
上一篇:Oracle 多行函数(聚合函数)和分组统计
下一篇:Oracle 单行函数

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年04月15日 08时18分23秒