今天去软通面试,过程很不理想,我想我不在状态吧。
快结束的时候,面试官出了一道面试题,很简单。完事他出去了,过了大约5到10分钟的样子,就回来了,我还只写了1/3,主要前面花了1、2分钟考虑有木有捷径可走,或更好的方法。最后他让我说一下思路,我就很简单很简单的说了下,就是说的很苍白,我想他也不满意吧。
下面是那个题目,各位大侠不知有木有什么另辟蹊径的捷径解法?题目是这样的:给出一个字符串,如“1,2,1,3,4,2,5”,要求去除重复数字并且按从大到小排序。没骗你,很简单吧,大侠们啥思路?
快结束的时候,面试官出了一道面试题,很简单。完事他出去了,过了大约5到10分钟的样子,就回来了,我还只写了1/3,主要前面花了1、2分钟考虑有木有捷径可走,或更好的方法。最后他让我说一下思路,我就很简单很简单的说了下,就是说的很苍白,我想他也不满意吧。
下面是那个题目,各位大侠不知有木有什么另辟蹊径的捷径解法?题目是这样的:给出一个字符串,如“1,2,1,3,4,2,5”,要求去除重复数字并且按从大到小排序。没骗你,很简单吧,大侠们啥思路?
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);
}
}
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;
}
}
}//下面开始冒泡排序了}
因为它给的不是 一个 int[], 而是以 逗号分隔的 字符串,你肯定得用 split(',')了.然后呢,要比较大小,还得把String => int然后才是考察 所谓的算法。。如果真的是考算法,不如直接给出来 int[] 了我估计是考核以下几个知识点:
split(regexp)
Comparable接口。
TreeSet
比如说,面试官可能会怪你,为什么不问问我,为什么是String,而不是int数组呢。
【我曾经去某公司面试的时候,就吃亏了。】