摘要: 一、Map接口类: 1 import java.util.Iterator; 2 3 public interface IMap<K, V> { 4 /* 清除所有键值对 */ 5 void clear(); 6 7 /* key是否已经存在 */ 8 boolean containsKey(K k 阅读全文
posted @ 2019-02-16 22:43 |旧市拾荒| 阅读(321) 评论(0) 推荐(0) 编辑
摘要: Hash简介: Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确 阅读全文
posted @ 2019-02-16 17:52 |旧市拾荒| 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 题目一: 请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中。给定一个int[] numbers,其中第一个元素为栈顶,请返回排序后的栈。请注意这是一个栈,意味着排序过程中你只能访问到第一个元素。 测试样例:[1,2, 阅读全文
posted @ 2019-02-16 16:45 |旧市拾荒| 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 题目一: 请设计一个栈,除pop与push方法,还支持min方法,可返回栈元素中的最小值。push、pop和min三个方法的时间复杂度必须为O(1)。 思路:题目要求时间复杂度为O(1),所以肯定不能用循环遍历的方式去解决,于是我们想到用空间换时间的方式去解决,如果我们已经维护好一个已经排好序的栈的 阅读全文
posted @ 2019-02-16 15:45 |旧市拾荒| 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 栈的实现: 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶(top),相对地,把另一端称为栈底(bottom)。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈 阅读全文
posted @ 2019-02-16 10:58 |旧市拾荒| 阅读(889) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个链表,检查链表是否回文。 思路:一种是将链表进行翻转(这里可以使用递归来解决,也可以使用非递归)然后翻转后的后半部分与链表的前半部分进行比较来进行判断,第二种是将先找到链表的中间位置,这里可以使用快慢指针来进行,快指针一次走两步,慢指针一次走一步,那么等到快指针走到末尾的时候那么慢指 阅读全文
posted @ 2019-02-16 10:01 |旧市拾荒| 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 题目一: 编写代码,以给定值x为基准将链表分为两部分,所有小于x的结点排在大于或等于x的结点之前。给定一个链表的头结点 ListNode * pHead,请返回重新后的链表的头指针。注意:分割以后原来的数据顺序不变,不要开辟新的空间,即不要新建节点。比如 5 6 3 2 7 以 3 为基准分区后为2 阅读全文
posted @ 2019-02-16 09:35 |旧市拾荒| 阅读(247) 评论(0) 推荐(0) 编辑