摘要: 获取Stream流对象;Stream流中间操作方法;Stream流终结操作方法;Stream收集操作(收集为双列集合案例) 阅读全文
posted @ 2023-12-13 22:22 沙汀鱼 阅读(6) 评论(0) 推荐(0) 编辑
摘要: leetcode 206. 反转链表 题意:给定链表表头,反转链表,返回反转链表的表头 【循环】题解: head维护原链表当前节点,nHead维护反转链表的头节点,nHead置于head前一位,依次后移,直至head到链表尾结束。 双指针循环版本 /** * Definition for singl 阅读全文
posted @ 2023-12-13 21:11 沙汀鱼 阅读(9) 评论(0) 推荐(0) 编辑
摘要: leetcode 160. 相交链表 题意:给定两个链表A、B的表头节点,找到链表交叉节点(地址值相同)。链表A长度为m,链表B长度为n,范围在[1, 3e4] 题解1: 根据哈希表去重的原理,使用哈希表集合HashSet来维护链表节点,默认比较节点地址值。将链表A中的节点全部add进HashSet 阅读全文
posted @ 2023-12-13 13:27 沙汀鱼 阅读(9) 评论(0) 推荐(0) 编辑
摘要: leetcode 225. 用队列实现栈 题意:用一个队列实现栈 题解: (1)弹栈:将队头开始的前size()-1个元素全部出队然后重新入队,使队尾元素循环到队头,然后弹出 (2)获取栈顶元素:先将队头开始的前size()-1个元素全部出队然后重新入队,使队尾元素循环到队头,此时队头元素即为栈顶元 阅读全文
posted @ 2023-12-12 21:34 沙汀鱼 阅读(9) 评论(0) 推荐(0) 编辑
摘要: leetcode 232. 用栈实现队列 题意:双栈实现队列;要求每个入队、出队操作均摊O(1)复杂度 题解: 用一个栈in维护入队元素,另一个栈out维护出队元素 出队或取队头元素:首先判断栈out是否为空,如果为空,将栈in中的元素pop()到栈out中,那么栈out栈顶元素即为原队列队头元素。 阅读全文
posted @ 2023-12-12 21:20 沙汀鱼 阅读(17) 评论(0) 推荐(0) 编辑
摘要: leetcode 239. 滑动窗口最大值 题目描述: 1e5大小的nums[]数组中长度为k(1<=k<=1e5)的窗口的最大值 题解: 暴力求解O(n^2)会超时,需要O(nlogn)的解法 使用大根堆优先队列维护窗口元素,每次取最大值复杂度降为O(1),堆结构维护复杂度O(logn) 问:如果 阅读全文
posted @ 2023-12-12 21:06 沙汀鱼 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 集合体系; 单列集合Collection{List(ArrayList, Vector, Stack, LinkedList), Set(TreeSet, HashSet, LinkedHashSet)}; 双列集合Map(HashMap, TreeMap, LinkedHashMap); 单列集合和双列集合的遍历方式; 单列集合工具类Collections; TreeSet集合的自然排序和比较器排序; 各集合的底层数据结构及使用场景等 阅读全文
posted @ 2023-12-09 17:10 沙汀鱼 阅读(10) 评论(0) 推荐(0) 编辑
摘要: HashSet/HashMap底层哈希表详解,源码分析HashMap put()方法的添加流程 阅读全文
posted @ 2023-12-09 17:01 沙汀鱼 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 树;二叉树:二叉查找树、平衡二叉树、AVL树、红黑树 阅读全文
posted @ 2023-12-09 16:59 沙汀鱼 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 栈、队列、数组、链表的特点 阅读全文
posted @ 2023-12-09 16:58 沙汀鱼 阅读(8) 评论(0) 推荐(0) 编辑