试题编号: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);
第一种方法显示是正确的,第二种有错,但是不知道问题在哪,求大神们解释一 下
第二行包含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);
第一种方法显示是正确的,第二种有错,但是不知道问题在哪,求大神们解释一 下
解决方案 »
- 字符串,求教
- 如何传出该数组
- 有高手能详细的解释下JAVA中的I/O流、线程和集合吗?(高手收笨徒弟不?)
- 在线等待高手的指点
- 请大家帮我看看下面有关字符输入的问题,谢谢!
- 如何缓存applet?
- 诚心求effective java 电子版
- 初学java,想问各位前辈一些小问题!多谢帮忙!
- SOS,比如我现在有两个java的源文件,在JB中建立一个PROJECT把这两个文件加入然后运行主java文件,但提示出错!
- Jbuilder 5.0中的调试,我设好了断点,为什么有时候断点上打个叉,有时候打个勾,代表什么?
- 向上造型有点晕,求大神形象的帮我解答一下
- JAVA中 elements = -1L >>> -universe.length 是什么意思????
public class Test{
public static void main(String[] args){
String content = "8 8 8 0 12 12 8 0";
content = content.replaceAll("((?<=^|\\s)\\d+)(\\s\\1(?=$|\\s))+","$1");
System.out.println(content.split("\\s+").length);
}
}