论坛首页 综合技术论坛

去除重复数

浏览 11120 次
锁定老帖子 主题:去除重复数
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (12)
作者 正文
   发表时间:2010-05-20   最后修改:2010-09-01
   这是一道外企算法的面试题,前提是不允许使用util包之外的类,即任何集合类都不允许使用。 写出的算法效率越高,此题得分越高,大家可以试一下。题目是输入一串已经排序好的数组,输出消除重复数之后的数组。如:
输入{ 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5 };输出{ 1, 2, 3, 4, 5 };

/**
 * 消除重复数(已经排序好的数组)
 * 
 * @author fangtengfei
 * @date   2010-5-16
 */
public class Distinct {

	public static void main(String[] args) {
		int[] oNums = { 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5 };
		int[] newNums = new int[oNums.length] ;
		int count = 0,index=-1;
		for (int i = 0; i  count) {
		  newNums[++index]=oNums[i];
		  count = oNums[i];
		}
		
	}
}


   发表时间:2010-05-21  
public class Distinct {  
 
    public static void main(String[] args) {  
        int[] oNums = { 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5 };  
        List newNums = new ArrayList();  
        int count = 0;  
        for (int i = 0; i < oNums.length; i++) {  
            if (oNums[i] > count) {  
                newNums.add(oNums[i]);  
                count = oNums[i];  
            }  
        }  
    }  




不知道LZ想做个什么,你试想
int[] oNums = { 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5 };  

如果oNums 数组第一个数大于后面的数.会出什么结果吗???
0 请登录后投票
   发表时间:2010-05-21  
sorry!我没写清楚,是已经排序好的数组。
0 请登录后投票
   发表时间:2010-05-22  
直接用SET不就可以了?
0 请登录后投票
   发表时间:2010-05-23  
用SET就不是在写一个算法了,而是在用别人的算法。
0 请登录后投票
   发表时间:2010-07-01  
如果是无序的数组,如何做效率高一点呢?
0 请登录后投票
   发表时间:2010-07-02  
yutian2211 写道
如果是无序的数组,如何做效率高一点呢?

通过hashtable算法。
0 请登录后投票
   发表时间:2010-09-01  
java的set早就做好了!不用那么麻烦!
0 请登录后投票
   发表时间:2010-09-01  
ps:代码质量:
1,泛型
2,对象for
3,…
0 请登录后投票
   发表时间:2010-09-01  
BestUpon 写道
java的set早就做好了!不用那么麻烦!

这是一道外企算法的面试题,前提是不允许使用util包之外的类,即任何集合类都不允许使用。
写出的算法效率越高,此题得分越高,大家可以试一下。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics