`
zeyuphoenix
  • 浏览: 59816 次
  • 性别: 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;
	}
}
分享到:
评论
发表评论

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

相关推荐

    airbnb 软件工程师面试题

    ### Airbnb软件工程师面试题知识点概览 #### Collatz Conjecture(科拉兹猜想) - **定义**:对于任意一个正整数n,如果n是偶数,则将它除以2;如果是奇数,则将它乘以3再加1。不断重复这样的运算,最终都能够回到1...

    java面试题大集合

    ### Java综合面试题知识点解析 #### 一、super()与this()的区别? - **super()**:用于调用父类的构造方法。在一个子类的构造方法中,如果要调用父类的构造方法,必须使用`super()`,并且这个调用语句必须放在子类...

    面试题-python3将N(N1....docx

    面试题主要涉及的是Python编程语言,具体是一个模拟游戏或算法问题,可以称为“报数淘汰赛”。在这个游戏中,N个人围成一圈,从第一个人开始按顺序报数,每报到M的倍数的人就会被淘汰出局,直到只剩K个人为止。我们...

    java面试题

    ### Java面试题详解 #### 1. `super()`与`this()`的区别? - **`super()`**:在子类构造函数中使用`super()`来调用父类的构造函数。它必须是子类构造函数的第一条语句。通过这种方式,可以确保在子类构造之前,...

Global site tag (gtag.js) - Google Analytics