Google面试题

1. 题目描述:  一个大小为n的数组,里面的数都属于范围[0, n-1],有不确定的重复元素,找到至少一个重复元素,要求O(1)空间和O(n)时间。2. 题目分析:翻译一下就是: 描述:有一行N个数,这些数都比N小,而且有重复。 要求:让你找到重复的数,满足“O(1)空间和O(n)时间”。 有人可能不理解空间复杂度和时间复杂度: 时间复杂度:执行算法所需要的计算工作量; 空间复杂度:执行这个算法所...
阅读(210) 评论(0)

Java中HashSet和TreeSet的区别

1. HashSetHashSet有以下特点: 不能保证元素的排列顺序,顺序有可能发生变化 不是同步的 集合元素可以是null,但只能放入一个null 当向HashSet集合中存入一个元素时,HashSet会调用该对象的hashCode()方法来得到该对象的hashCode值,然后根据 hashCode值来决定该对象在HashSet中存储位置。 简单的说,HashSet集合判断两个元素相等的标准是...
阅读(449) 评论(9)

跳跃表的原理及实现

1. 跳跃表的原理      学过数据结构的都知道,在单链表中查询一个元素的时间复杂度为O(n),即使该单链表是有序的,我们也不能通过2分的方式缩减时间复杂度。       如上图,我们要查询元素为55的结点,必须从头结点,循环遍历到最后一个节点,不算-INF(负无穷)一共查询8次。那么用什么办法能够用更少的次数访问55呢?最直观的,当然是新开辟一条捷径去访问55。       如上图,我们要...
阅读(494) 评论(3)
    我的公众号

    关注微信公众号,专

    为机器学习入门者
    个人资料
    • 访问:145014次
    • 积分:3307
    • 等级:
    • 排名:第10702名
    • 原创:83篇
    • 转载:6篇
    • 译文:4篇
    • 评论:761条
    博客专栏
    最新评论