美文网首页
远景能源-【内推】Android开发-20170805

远景能源-【内推】Android开发-20170805

作者: Jacinth | 来源:发表于2017-08-05 15:13 被阅读0次

    电面

    • 自我介绍
    • 项目和实习内容
    • 一个txt文档中有100个手机号,有可能会有重复的,如何用最快的方法找出重复的?

    建立一颗树,建立的过程为:
    1)开始的时候树是空的。
    2)逐个读取手机行,比如读入一个手机号为:12345678900,在树中插入这个手机号后,树为:
    root
    └─1
    └─2
    └─3
    └─4
    └─5
    └─6
    └─7
    └─8
    └─9
    └─0
    └─0
    3)插入若干手机号后,树可能是这样的:
    root
    └─1
    ├─2
    │ └─3
    │ └─4
    │ └─5
    │ └─6
    │ ├─6
    │ │ └─8
    │ │ └─9
    │ │ └─0
    │ │ ├─0
    │ │ └─1
    │ └─7
    │ └─8
    │ └─9
    │ └─0
    │ ├─0
    │ └─1
    ├─5
    │ └─3
    │ └─4
    │ └─5
    │ └─6
    │ └─7
    │ └─8
    │ └─9
    │ └─0
    │ └─0
    └─7
    └─3
    └─4
    └─5
    └─6

                        └─7
                            └─8
                                └─9
    

    这颗数一共有 6 个手机号,分别是:
    12345668900
    12345668901
    12345678900
    12345678901
    15345678900
    17345678900
    4)判断一个手机号是不是重复的,只要在这颗树里面,逐层逐个数字查找就可以了。
    5)效率分析:这种算法,插入一个新的手机号,以及查找一个手机号是否重复,效率都是很高的。

    一个个以字符串形式取出存入如一个Set<String>集合和一个List集合all,因为Set集合不允许重复所以在把Set转成List other,然后all.removeAll(other);剩下的就是重复的。比树要麻烦。

    • Java 0-9生成不重复五位数字验证码

    相关文章

      网友评论

          本文标题:远景能源-【内推】Android开发-20170805

          本文链接:https://www.haomeiwen.com/subject/ftoilxtx.html