牛客(40)数组中只出现一次的数字

//    题目描述
//    一个整型数组里除了两个数字之外,其他的数字都出现了两次。
//   请写程序找出这两个只出现一次的数字。

    //num1,num2分别为长度为1的数组。传出参数
    //将num1[0],num2[0]设置为返回结果

    public static void FindNumsAppearOnce(int[] array, int num1[], int num2[]) {
//        通过 0%
//        if (num1.length <= 1 || num2.length <= 1 || array.length <= 1) {
        if (array.length <= 1) {
            return;
        }
        boolean f1 = false;
        boolean f2 = false;
        for (int i = 0; i < array.length; i++) {
            int flagNum1 = 0;
            int flagNum2 = 0;
            int num1flag = array[i];
            int num2flag = array[i];
            for (int j = 0; j < array.length; j++) {
                if (!f1) {
                    if (num1flag == array[j]) {
                        flagNum1++;
                    }
                } else if (!f2) {
                    if (num2flag == array[j]) {
                        flagNum2++;
                    }
                }
            }
            if (flagNum1 == 1) {
                num1[0] = array[i];
                f1 = true;
            }
            if (flagNum2 == 1) {
                num2[0] = array[i];
                f2 = true;
            }
        }
    }

 

posted @ 2018-05-18 10:12  楷兵  阅读(104)  评论(0编辑  收藏  举报