问题:一个动态长度可变的数字序列,以数字0为结束标志,要求将重复的数字用一个数字代替,例如:
将数组 1,1,1,2,2,2,2,2,7,7,1,5,5,5,0 转变成1,2,7,1,5,0
package arraytest;
import java.util.ArrayList;
import java.util.List;
public class DeleteNumber {
/**
* @param args
*/
public static void main(String[] args) {
List<Integer> allNums = new ArrayList<Integer>();
allNums.add(1);
allNums.add(1);
allNums.add(1);
allNums.add(1);
allNums.add(1);
allNums.add(2);
allNums.add(2);
allNums.add(4);
allNums.add(5);
allNums.add(3);
allNums.add(3);
allNums.add(1);
allNums.add(7);
allNums.add(7);
allNums.add(7);
allNums.add(17);
System.out.println(Delete(allNums));
}
public static List<Integer> Delete(List<Integer> allNums) {
if (allNums == null || allNums.isEmpty()) {
throw new NullPointerException("list is null.");
}
List<Integer> newNums = new ArrayList<Integer>();
int temp = allNums.get(0);
newNums.add(temp);
for (int i = 1; i < allNums.size(); i++) {
if (allNums.get(i) == temp) {
continue;
} else {
newNums.add(allNums.get(i));
temp = allNums.get(i);
}
}
return newNums;
}
}
分享到:
相关推荐
### Airbnb软件工程师面试题知识点概览 #### Collatz Conjecture(科拉兹猜想) - **定义**:对于任意一个正整数n,如果n是偶数,则将它除以2;如果是奇数,则将它乘以3再加1。不断重复这样的运算,最终都能够回到1...
### Java综合面试题知识点解析 #### 一、super()与this()的区别? - **super()**:用于调用父类的构造方法。在一个子类的构造方法中,如果要调用父类的构造方法,必须使用`super()`,并且这个调用语句必须放在子类...
面试题主要涉及的是Python编程语言,具体是一个模拟游戏或算法问题,可以称为“报数淘汰赛”。在这个游戏中,N个人围成一圈,从第一个人开始按顺序报数,每报到M的倍数的人就会被淘汰出局,直到只剩K个人为止。我们...
### Java面试题详解 #### 1. `super()`与`this()`的区别? - **`super()`**:在子类构造函数中使用`super()`来调用父类的构造函数。它必须是子类构造函数的第一条语句。通过这种方式,可以确保在子类构造之前,...