我需要有关编码问题的帮助。我想找到答案的一些提示,但不是答案本身。
示例输入看起来像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();
}
答案 0 :(得分:0)
编写一个循环,从arr
的开始到结束迭代,并检查每个索引前后的元素,它包含不同的值。如果该值与上一个和下一个元素不同,请向计数器添加一个。在访问这些索引之前,请务必检查前面或后面的索引是否不等于-1
或arr.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