摘要: [LeetCode]1. Two Sum 题目(题目已修改,和原题要求不一样) 测试案例 思路一 1. 先将数组排序。 2. 从左至右依次遍历每个元素,同时在其右边的子序列中采用二分法查找 target 与当前元素的差值。 代码如下 思路二 1. 先将数组排序 2. 从左至右依次遍历每个元素,同时在 阅读全文
posted @ 2018-09-04 16:38 Echie 阅读(182) 评论(0) 推荐(0) 编辑
摘要: [LeetCode 11] Container With Most Water 题目 测试案例 思路一 采用贪心算法,每次计算两端元素 a 和 b 构成的容积,并更新最大值 max。同时将两端元素较小(设为 b )的一端往中间移动一个单元。因为所有以 b 作为一端的容器的容积必不大于以 a 和 b 阅读全文
posted @ 2018-09-04 11:03 Echie 阅读(689) 评论(0) 推荐(0) 编辑
摘要: 1. 最长公共子序列 题目 测试案例 代码如下 3. [LeetCode 5]最长回文子串 题目 测试案例 代码如下 返回最长递增子序列的个数 要求:递增子序列中不存在相等元素 代码如下 java class Solution{ int LIS(int[] nums){ int n = nums.l 阅读全文
posted @ 2018-09-03 17:39 Echie 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 题目 测试案例 思路 使用最小堆进行多路归并,堆中存放的元素是每一个有序链表。 排序的比较方法是链表头节点的值。 每次从堆中取出最小值后,取出头结点。当链表剩余部分非空时,就将其放入堆中。将头结点放入结果队列的尾部。 具体实现 由于 java 中有数据结构 PriorityQueue(优先级队列), 阅读全文
posted @ 2018-09-02 15:02 Echie 阅读(125) 评论(0) 推荐(0) 编辑
摘要: [LeetCode] 128. Longest Consecutive Sequence 题目 样例 思路一: 本题要求时间复杂度为 $O(n)$。如果进行排序的话,时间复杂度为 $O(n)$ 的排序算法有:计数排序,桶排序和基数排序。其中: 计数排序要求数据比较集中,最大值和最小值的差较小。而本题 阅读全文
posted @ 2018-08-31 14:05 Echie 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 转载自 "https://github.com/CyC2018/CS Notes/blob/master/notes/Java%20%E5%B9%B6%E5%8F%91.md" 0、进程和线程的区别: 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,上下文切换大约需 阅读全文
posted @ 2018-08-29 19:24 Echie 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 1.集合概览 集合包括两大接口: 和 。 集合中常用的四个接口: 。 1. 2. 3. 4. 方法可以删除 方法返回的元素,但是不可以连续使用 方法。因为 对象中有一个成员变量 保存 方法的返回值,当调用 删除元素后, 会被置为 。所以不能连续调用 。 当使用 迭代器访问 集合元素时, 中的元素不能 阅读全文
posted @ 2018-08-26 13:17 Echie 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 第 8 章 泛型 java 集合的原生类型(即 Set、List、Map 等)有一个缺点——把对象放入集合以后,集合就会忘记对象的数据类型,当再次取出对象时,该对象的编译时类型变成了 Object (其运行时类型没变)。使用对象的方法前,需要强制转换类型。而泛型集合,可以记住集合中元素的类型(通过编 阅读全文
posted @ 2018-08-25 17:23 Echie 阅读(362) 评论(0) 推荐(0) 编辑