随笔分类 -  Java

摘要:LeetCode精选题目20道 1.56.合并区间 贪心 给出一个区间的集合,请合并所有重叠的区间。 示例 1: 输入: intervals = [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 阅读全文
posted @ 2023-04-28 20:37 空無一悟 阅读(31) 评论(0) 推荐(0) 编辑
摘要:贪心算法 1 贪心选择例题 455.饼干分配 假设你想给小朋友们饼干。每个小朋友最多能够给一块儿饼干。每个小朋友都有一个“贪心指数”,称为g(i),g(i)表示的是这名小朋友需要的饼干大小的最小值。同时,每个饼干都有一个大小值s(i)。如果s(j) >= g(i),我们将饼干j分给小朋友i后,小朋友 阅读全文
posted @ 2023-04-24 23:23 空無一悟 阅读(139) 评论(0) 推荐(0) 编辑
摘要:动态规划 1 什么是动态规划 以菲波那切数列求和为例,通过 1.普通的递归 2.引入记忆数组memo 3.自下而上地解决问题,即动态规划 动态规划的定义 dynamic programming (also known as dynamic optimization) is a method for 阅读全文
posted @ 2023-04-23 21:41 空無一悟 阅读(79) 评论(0) 推荐(0) 编辑
摘要:递归和回溯 0 递归与回溯的异同 参考文章 递归与回溯 递归与回溯的理解 回溯和递归区别 比较 | | 递归 | 回溯 | | | | | | 定义 | 为了描述问题的某一状态,必须用到该状态的上一状态,而描述上一状态,又必须用到上一状态的上一状态……这种用自已来定义自己的方法,称为递归定义。形式如 阅读全文
posted @ 2023-04-19 23:47 空無一悟 阅读(53) 评论(0) 推荐(0) 编辑
摘要:二叉树和递归 0 LeetCode297 二叉树的序列化和反序列化 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化。这里不限定 阅读全文
posted @ 2023-04-17 23:06 空無一悟 阅读(27) 评论(0) 推荐(0) 编辑
摘要:栈和队列 1 栈的基础应用:20.括号匹配 class Solution { public boolean isValid(String s) { Stack<Character> stack = new Stack<>(); for (int i = 0; i < s.length(); i++) 阅读全文
posted @ 2023-04-16 23:30 空無一悟 阅读(149) 评论(0) 推荐(0) 编辑
摘要:2023-04-15 算法面试中常见的链表问题 本章的两个基础类如下 链表的节点类。toString()在debug时实时查看链表很有用 /*********************************************************** * @Description : 链表的 阅读全文
posted @ 2023-04-15 23:26 空無一悟 阅读(15) 评论(0) 推荐(0) 编辑
摘要:2023-04-14 算法面试中常见的查找表问题 1 Set的使用 LeetCode349号问题:两个数组的交集 给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2] 示例 2: 输入: nums1 = [ 阅读全文
posted @ 2023-04-14 22:49 空無一悟 阅读(30) 评论(0) 推荐(0) 编辑
摘要:数组中的问题其实最常见 通过基础问题,掌握写出正确算法的“秘诀” 巧妙使用双索引技术,解决复杂问题 对撞指针- 滑动窗口 1 从二分查找法看如何写出正确的程序 本节学习重点:处理边界问题! 1.确定边界范围方法,先用区间表示,即明确范围的数学定义,后用代码表示; 2.在循环里维护循环不变量,能保证算 阅读全文
posted @ 2023-04-12 21:52 空無一悟 阅读(30) 评论(0) 推荐(0) 编辑
摘要:无向图的匹配问题 之所以把无向图的这个匹配问题放到最后讲是因为匹配问题借鉴了有向图中一些算法的思想 1 最大匹配和完美匹配 二分图回顾 二分图:把一个图中的所有顶点分成两部分,如果每条边的两端分别属于不同部分,则这个图是二分图。更多二分图内容参考第4章 二分图相关 最大匹配和完全匹配的概念 一旦在二 阅读全文
posted @ 2023-04-11 23:09 空無一悟 阅读(148) 评论(0) 推荐(0) 编辑
摘要:网络流和最大流问题 1 网络流和最大流问题阐述 网络流基本概念 网络流图中,从源点出发,在满足每条边容量限制的条件下,汇点t最多能接收多少流量 s:source t:target 网络流需要满足的限制 容量限制 平衡限制:除了源点s和汇点t,对于每一个点,流入量等于流出量 从源点s流出的流量,一定等 阅读全文
posted @ 2023-04-10 23:25 空無一悟 阅读(210) 评论(0) 推荐(0) 编辑
摘要:有向图及相关算法 1 有向图的实现 有向图的的应用场景 社交网络中的关注 互联网连接 程序模块的引用 任务调度 学习计划 食物链 论文引用 无向图是特殊的有向图,即每条边都是双向的 改进Graph和WeightedGraph类使之支持有向图 Graph类的改动 WeightedGraph类的改动 2 阅读全文
posted @ 2023-04-09 23:37 空無一悟 阅读(196) 评论(0) 推荐(0) 编辑
摘要:无向有权图之最短路径问题 1 有权图的最短路径问题 什么是有权图的最短路径问题? 从图中的一个点到另一个点的路径中,权值总和最小的路径就是最短路径 最短路径的应用场景 高德导航两个地点之间的路线,一般都是规划地最短路径 互联网中对数据进行路由,一般都是选最优的路径进行数据传送 单源最短路径问题 无权 阅读全文
posted @ 2023-04-08 23:24 空無一悟 阅读(351) 评论(0) 推荐(0) 编辑
摘要:无向有权图之最小生成树问题 前10章我们讲解地都是无向无权图,本章我们将讲解无向有权图,以及无向有权图的经典问题:最小生成树问题(MST:Minimum Spanning Tree) 1~2 无向有权图的实现 主要是用TreeMap代替了无向无权图的TreeSet 本节用到的图 上面的graph.t 阅读全文
posted @ 2023-04-07 23:28 空無一悟 阅读(119) 评论(0) 推荐(0) 编辑
摘要:欧拉回路和欧拉路径 1 欧拉回路 欧拉回路的起源 欧拉回路与哈密尔顿回路的区别 经过所有顶点的回路不一定经过所有边。即哈密尔顿回路不一定是欧拉回路 哈密尔顿回路:从一个点出发,沿着边行走,经过每个顶点恰好一次,之后再回到出发点 欧拉回路: 从一个点出发,沿着边行走,经过每条边 恰好一次,之后再回到出 阅读全文
posted @ 2023-04-05 21:44 空無一悟 阅读(219) 评论(0) 推荐(0) 编辑
摘要:哈密尔顿问题和路径压缩 1 哈密尔顿回路和TSP 路径与回路 哈密尔顿问题偏计算机,欧拉问题偏数学,所以本章我们主要讲哈密尔顿回路和哈密尔顿路径 哈密尔顿回路 哈密尔顿路径 欧拉回路 欧拉路径 哈密尔顿回路定义 从一个点出发,沿着边走,经过每个顶点恰好一次,之后再回到出发点,过程中经过的路径就叫哈密 阅读全文
posted @ 2023-04-04 23:27 空無一悟 阅读(259) 评论(0) 推荐(0) 编辑
摘要:桥和割点以及图的遍历树 1 什么是桥 定义 对于无向图,如果删除了一条边,整个图联通分量数量就会变化,则这条边称为桥(Bridge)。桥意味着图中最脆弱的关系 应用 交通系统 比如两个城市上海和南京仅通过长江大桥相连,如果长江大桥被毁坏了,那么两个城市就分开各自为战了 社交网络 两个班级通过班长联系 阅读全文
posted @ 2023-04-02 23:13 空無一悟 阅读(67) 评论(0) 推荐(0) 编辑
摘要:图论问题建模和floodfill floodfill(洪泛)实际就是图的遍历 1 图论问题例子:判断二分图 题目来源:LeetCode 785 is-graph-bipartite:,判断二分图, 因为题目中已经给出了邻接表,相当于已经给出了Graph,所以直接用二分图的核心算法即可,参考DFS实现 阅读全文
posted @ 2023-04-01 21:51 空無一悟 阅读(31) 评论(0) 推荐(0) 编辑
摘要:图的广度优先遍历 ArrayDeque解析 作为队列使用 public abstract boolean add(E paramE); // 加入元素到队尾 public abstract boolean offer(E paramE); // 加入元素到队尾 public abstract E r 阅读全文
posted @ 2023-03-30 21:42 空無一悟 阅读(103) 评论(0) 推荐(0) 编辑
摘要:图的深度优先遍历的应用 常见的应用如下 求图的连通分量(1~2) 求两点间是否可达(3) 求两点间的一条路径(4) 检测图是否有环(9) 二分图检测(10~11) 寻找图中的桥和割点 哈密尔顿路径 拓扑排序 1 求无向图的连通分量的个数 DFS递归每退出一次,说明图有了一个连通分量,所以在dfs() 阅读全文
posted @ 2023-03-29 23:49 空無一悟 阅读(59) 评论(0) 推荐(0) 编辑

主题色彩
点击右上角即可分享
微信分享提示