试题编号:201509-1试题名称:数列分段时间限制:1.0s内存限制:256.0MB问题描述:问题描述  给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数列中共有多少段?输入格式  输入的第一行包含一个整数n,表示数列中整数的个数。
   第二行包含n个整数a1, a2, …, an,表示给定的数列,相邻的整数之间用一个空格分隔。输出格式  输出一个整数,表示给定的数列有多个段。样例输入8
 8 8 8 0 12 12 8 0样例输出5样例说明  8 8 8是第一段,0是第二段,12 12是第三段,倒数第二个整数8是第四段,最后一个0是第五段。评测用例规模与约定  1 ≤ n ≤ 1000,0 ≤ ai ≤ 1000。 我是了两种方法
方法1:
Scanner in = new Scanner(System.in);
int num = in.nextInt();
List<Integer> list = new ArrayList<Integer>();
for(int i=0;i<num;i++){
list.add(in.nextInt());
}
int result = 1;
int temp = list.get(0);
for(int i=1; i<num; i++){
if(list.get(i) != temp){
result ++;
temp = list.get(i);
}
}

in.close();
System.out.print(result);方法2:Scanner in = new Scanner(System.in);
int num = in.nextInt();
List<Integer> list = new ArrayList<Integer>();
for(int i=0;i<num;i++){
list.add(in.nextInt());
}
int result = 1;
for(int i=0;i<(list.size() - 1);i++){
if(list.get(i) != list.get(i+1)){
result += 1;
}
}
in.close();
System.out.print(result);
第一种方法显示是正确的,第二种有错,但是不知道问题在哪,求大神们解释一 下