题目的链接在这里:https://www.nowcoder.com/practice/389fc1c3d3be4479a154f63f495abff8
题目大意
一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。数据范围:数组长度 2\le n \le 10002≤n≤1000,数组中每个数的大小 0 < val \le 10000000<val≤1000000
要求:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)
提示:输出时按非降序排列。
一、示意图
二、解题思路
暴力
暴力
代码如下:
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param array int整型一维数组
* @return int整型一维数组
*/
public int[] FindNumsAppearOnce (int[] array) {
// write code here
//数组中只出现了一次的数值 其他都出现了两次
//暴力手段 输出按照降序排序与
int [] result=new int[2];
Arrays.sort(array);
//然后开始排序
int index=0;
for(int i=0;i<array.length-1;i++){
if(array[i]!=array[i+1]){
//那就说明这个是单独存在的
result[index++]=array[i];
}
else{
//说明i和j相同的话 相当于多走一步
i++;
}
}
//然后判断一下最后一个
if(index!=2){
//说明值输出了一个
result[index]=array[array.length-1];
}
return result;
}
}