![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法框架
木的竹
这个作者很懒,什么都没留下…
展开
-
java实现最小覆盖子串最后一个测试不通过
题目描述leetcode:76. 最小覆盖子串给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。注意:如果 s 中存在这样的子串,我们保证它是唯一的答案。示例 1:输入:s = "ADOBECODEBANC", t = "ABC"输出:"BANC"示例 2:输入:s = "a", t = "a"输出:"a"提示:1 <= s.length, t.length <= 105原创 2020-12-26 09:40:08 · 292 阅读 · 0 评论 -
剑指 Offer 12. 矩阵中的路径 java dfs
题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[[“a”,“b”,“c”,“e”],[“s”,“f”,“c”,“s”],[“a”,“d”,“e”,“e”]]但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一原创 2020-12-19 19:35:17 · 96 阅读 · 1 评论 -
二分查找边界条件确认java
二分查找的边界确认问题:寻找一个数,寻找左侧边界,寻找右侧边界二分查找的效率很高,为 log2n,(是以2为底,n的对数)但是有关二分查找的几个细节问题很难确认:如 mid 加一还是减一;while 判断条件到底是<=还是<结论:搜索一个元素时,搜索区间两端闭,while 条件带等号,if相等就返回,mid 必须加减一,因为区间两端闭,while 循环结束就是没找到,返回-1搜索左右边界时,搜索区间要阐明,左闭右开最常见,其余逻辑便自明,while 要用小于号,这样才能不漏掉,if相等别.原创 2020-12-19 08:58:18 · 705 阅读 · 2 评论 -
Partition函数实现java(含分析)
Partition函数作用在数组中选择一个数字,接下来把数组中的数字分为两部分,比选择的数字小的数字移到数组的左边,比选择的数字大的数字移到到数组的右边。Partition还可以用来实现长度为n的数组中查找第k大的数字;以及“数组中超过数字一半的数字”和“最小的k个数”Partition代码int Partition(int data[], int length, int start, int end) { if (data == null || length <= 0 || s原创 2020-12-16 16:51:22 · 1258 阅读 · 1 评论 -
BFS算法(广度优先搜索)java
BFS介绍BFS:宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,属于一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。BFS 的核心思想就是把一些问题抽象成图,从一个点开始,向四周开始扩散。一般来说,我们写 BFS 算法都是用「队列」这种数据结构,每次将一个节点周围的所有节点加入队列。BFS 出现的常见场景,问题的本质就是让你在一幅「图」中找到从起点start到终点target的最近距离。嘛意思呢,假设你原创 2020-12-15 21:35:56 · 3738 阅读 · 2 评论