`
zeyuphoenix
  • 浏览: 55997 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

收集面试题(十三)(删除相邻重复数字)

阅读更多
问题:一个动态长度可变的数字序列,以数字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;
	}
}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics