逻辑题一个整型数组里除了两个数字之外,其他的数字都出现了两次,请写程序找出这两个只出现一次的数字。
Posted 天坪宇智波小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了逻辑题一个整型数组里除了两个数字之外,其他的数字都出现了两次,请写程序找出这两个只出现一次的数字。相关的知识,希望对你有一定的参考价值。
package test; import java.util.*; public class test17 { public static void main(String[] args) { //一个整型数组里除了两个数字之外,其他的数字都出现了两次。 // 请写程序找出这两个只出现一次的数字。 int[] ints = {1,1,2,5,5,6,3,3}; Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (int i=0;i<ints.length;i++){ if (map.containsKey(ints[i])){ int i1 = map.get(ints[i]) + 1; map.put(ints[i],i1); }else { map.put(ints[i],1); } } ArrayList list = new ArrayList(); for (int i=0;i<ints.length;i++){ if (map.get(ints[i])==1){ list.add(ints[i]); } if (map.get(ints[i])==2){ continue; } } System.out.println(list); } }
详解:
首先我们用map集合将每个数字存到集合里,数字为key,出现的次数为value.结果为下:
{1=2, 2=1, 3=2, 5=2, 6=1}
但是因为map集合只能根据key拿value的特点,我们想拿出现一次的数字,我们将list集合中的每个值当做当做key,将value等于一值放到list中。
[2, 6]
以上是关于逻辑题一个整型数组里除了两个数字之外,其他的数字都出现了两次,请写程序找出这两个只出现一次的数字。的主要内容,如果未能解决你的问题,请参考以下文章
C语言实现一个int类型数组里除了两个数字之外,其他的数字都出现了两次,找出这两个数字
面试题:找出数组中只出现一次的2个数(异或的巧妙应用)(出现3次)
LeetCode一个整型数组里除两个数字之外,其他数字都出现了两次,请找出这两个只出现一次的数字(剑指 Offer 56 - I. 数组中数字出现的次数) | 数组分组异或