今天去软通面试,过程很不理想,我想我不在状态吧。
快结束的时候,面试官出了一道面试题,很简单。完事他出去了,过了大约5到10分钟的样子,就回来了,我还只写了1/3,主要前面花了1、2分钟考虑有木有捷径可走,或更好的方法。最后他让我说一下思路,我就很简单很简单的说了下,就是说的很苍白,我想他也不满意吧。
下面是那个题目,各位大侠不知有木有什么另辟蹊径的捷径解法?题目是这样的:给出一个字符串,如“1,2,1,3,4,2,5”,要求去除重复数字并且按从大到小排序。没骗你,很简单吧,大侠们啥思路?

解决方案 »

  1.   

    如果是Java,他可能是考你用TreeSet呢,如果是C++,那就不一样了。
      

  2.   

    set里面好像有这样的方法吧。网上曾经看到一个面试题,就是将一个数组添加到一个set中,然后添加的会自动去掉重复的。这里面可以将一个数组添加到一个空的set中应该就能得到你要的结果吧。你查下api吧,我也没用过
      

  3.   

    import java.util.Arrays;
    import java.util.Collection;
    import java.util.TreeSet;楼主看看满足你的要求吗?
    public class Test1 { public static void main(String[] args)
    {
    Collection<Integer> s = new TreeSet<Integer>(Arrays.asList(1,2,1,3,4,2,5));
    System.out.print(s);
    }
    }
      

  4.   

    wokao,一个个的都这么高级,看来我做J2ME做惯了,总想着用低级方法
      

  5.   

    我的思路是这样的String str = "1,2,1,3,4,2,5";
    String[] num= str.split(",");
    // 从第一个数字去判断下面是否有和它重复的,把后面重复的都置为null
    for(int i == 0; i < num.length; i++)
    {
    // 如果为null,说明原先该位置的数字和前面的重复,忽略掉它
    if(num[i] == null)
    {
    continue;
    }
    else
    {
    for(int j = i + 1; j < num.length; j++)
    {
    if(Integer.parseInt(num[i]) == Integer.parseInt(num[j]))
    {
    num[j] = null;
    }
    }
    }//下面开始冒泡排序了}
      

  6.   


    因为它给的不是 一个 int[], 而是以 逗号分隔的 字符串,你肯定得用 split(',')了.然后呢,要比较大小,还得把String => int然后才是考察 所谓的算法。。如果真的是考算法,不如直接给出来 int[] 了我估计是考核以下几个知识点:
    split(regexp)
    Comparable接口。
    TreeSet
      

  7.   

    面试中,并非都是技术面试,其实题目中也可能暗含沟通问题。
    比如说,面试官可能会怪你,为什么不问问我,为什么是String,而不是int数组呢。
    【我曾经去某公司面试的时候,就吃亏了。】