数组中只出现一次的两个数字
描述
一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
示例1
输入:
[1,4,1,6]
复制返回值:
[4,6]
复制说明:
返回的结果中较小的数排在前面
package com.bite;
/**
* @program: bite
* @description
* @author: wenwen
* @create: 2021-07-24 21:35
**/
import java.util.*;
import java.util.Map;
public class TestNiuKe {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param array int整型一维数组
* @return int整型一维数组
*/
public static void FindNumsAppearOnce(int[] array) {
ArrayList<Integer> arr = new ArrayList<>();
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < array.length; i++) {
if (map.get(array[i]) == null) {
map.put(array[i], 1);
} else {
int val = map.get(array[i]);
map.put(array[i], val + 1);
}
// }
// int[] ret = new int[array.length];
// for(int i =0; i < array.length; i++){
//
// if(map.get(array[i]) == 1){
// ret[i]=array[i];
// } else{
// continue;
// }
//
// }
// return ret;
// write code here
}
for(int i = 0; i <array.length; i++){
if(map.get(array[i]) == 1){
arr.add(array[i]);
}
}
System.out.println(arr);
int[] ret =new int[2];
for(int i =0; i < 2; i++){
ret[0] = arr.get(0);
ret[1]= arr.get(1);
if(ret[0] > ret[1]){
int temp = ret[0];
ret[0] = ret[1];
ret[1] = temp;
}
}
System.out.println(Arrays.toString(ret));
}
public static void main(String[] args) {
int[] arr ={ 1,6,1,4};
FindNumsAppearOnce(arr);
}
}