欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

剑指offer:数组中只出现一次的两个数字(java版)

程序员文章站 2022-07-15 12:16:23
...

描述

一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。

示例1

输入:

[1,4,1,6]

返回值:

[4,6]

说明:

返回的结果中较小的数排在前面  

题目分析:

写前面的几道题写的有点废

需要一到安慰心灵的数组题

说实话,递归题练了一到又一道,心里还是虚

自己最拿手的还是数组题,哈哈~

思路

1、首先将数组从小到大排序

2、存每个数字出现的次数到一个数组中

3、将次数出现等于1的数字存入长度为2的数组中,返回即可~

代码

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param array int整型一维数组 
     * @return int整型一维数组
     */
    public int[] FindNumsAppearOnce (int[] array) {
        // write code here
        Arrays.sort(array);
        int[] a = new int[2];
        int[] sum= new int[array.length];
        for(int i = 0; i<array.length;i++){ 
            sum[i]=0;
            for(int j=0; j<array.length;j++){
                if(array[i]==array[j]){
                    sum[i]++;
                }
            }
        }
        for(int i=0,x=0;i<array.length;i++){
            if(sum[i]==1){
                a[x]=array[i];
                x++;
            }
        }
        return a;
    }
}

数组真的越用越喜欢~

相关标签: java