计算非重复整数

时间:2016-05-24 00:04:11

标签: java

我需要有关编码问题的帮助。我想找到答案的一些提示,但不是答案本身。

示例输入看起来像3112。

样本输出为2,因为整数不重复。

这是代码

public static int lonelyInteger(int[] arr)
{

    need to code this 

}


public static void main(String[] args) throws IOException
{
    Scanner in = new Scanner(System.in);
    final String fileName = System.getenv("OUTPUT_PATH");
    BufferedWriter bw = new BufferedWriter(new FileWriter(fileName));
    int res;

    int _arr_size = Integer.parseInt(in.nextLine());
    int[] _arr = new int[_arr_size];
    int _arr_item;
    for(int _arr_i = 0; _arr_i < _arr_size; _arr_i++)
    {
        _arr_item = Integer.parseInt(in.nextLine());
        _arr[_arr_i] = _arr_item;
    }

    res = loneyInteger(_arr);
    bw.write(String.valueOf(res));
    bw.newLine();

    bw.close();
}

2 个答案:

答案 0 :(得分:0)

编写一个循环,从arr的开始到结束迭代,并检查每个索引前后的元素,它包含不同的值。如果该值与上一个和下一个元素不同,请向计数器添加一个。在访问这些索引之前,请务必检查前面或后面的索引是否不等于-1arr.length

扰流:

  

int count = 0; for (int i = 0; i < arr.length; i++) if (i-1 >= 0 && arr[i] == arr[i-1] || i+1 < arr.length && arr[i] == arr[i+1]) continue; else count++; return count;

答案 1 :(得分:0)

你可以在读取它们时重复自己的整数计数器。

例如:

for(int _arr_i = 0; _arr_i < _arr_size; _arr_i++)
{
   _arr_item = Integer.parseInt(in.nextLine());
   if (itemNotInList(_arr_item))
      repeatedItemsCounter++;
}
unrepeadedItems = allItems - repeatedItemsCounter