在网上看到一个面试题,是怎么在10万个手机号码中把重复的号码筛选出来。

想了一下,可以先使用快速排序法进行排序,然后再逐条循环和相邻号码匹配,这样重复的号码就出来了。

如果分段进行的话可以适当减小算法的复杂度。而且可以通过多线程充分利用CPU性能。

 

 

使用mapreduce简直不要太容易了。

var result = 号码.MapReduce(t=>

{

  return new KeyValueClass(t.号码, 1);

},

(key, values)=>

{

  return values.Count();

});

然后循环字典result,把value>1的数据取出来就可以了

相关文章:

  • 2021-10-04
  • 2021-11-13
  • 2021-04-14
  • 2022-02-17
  • 2021-10-12
  • 2022-12-23
  • 2021-12-08
猜你喜欢
  • 2022-02-07
  • 2022-12-23
  • 2022-12-23
  • 2021-09-02
  • 2021-10-18
相关资源
相似解决方案