【LeetCode每日一题】只出现一次字样的数组


只出现一次字样的数组

1、题目描述

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。

示例1:

输入:nums = [2,2,3,2]
输出:3

示例2:

输入:nums = [0,1,0,1,0,1,99]
输出:99

2、算法描述

核心思想:
	把数组先排序一下,这样我们可以把相同的数字放在一起,然后记录一下重复数组的个数,个数大于2,我们就移动到下一个,寻找数字的个数为一的那个数
	
具体实现:
	1、把数组排序
	2、开始遍历,一旦遇到2个重复的,就将遍历指针移动两个,然后进行下一轮比较
	

3、代码实现

package com.java;

import java.util.Arrays;

/**
 * @author huangchao
 * @date 2021/4/30
 */
public class Day28_Solution {
    public int singleNumber(int[] nums) {
        Arrays.sort(nums);
        int num = nums[0];
        int count = 1;
        for (int i=1;i 1) {
                i = i + 2;
                num = nums[i];
                count = 1;
            }
        }
        return num;
    }
}