![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
牛客网高级算法
高级算法
AI_Younger_Man
这个作者很懒,什么都没留下…
展开
-
leetcode-79. 单词搜索
给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: board = [ [‘A’,‘B’,‘C’,‘E’], [‘S’,‘F’,‘C’,‘S’], [‘A’,‘D’,‘E’,‘E’] ] 给定 word = “ABCCED”, 返回 true 给定 word = “SEE”, 返回 true 给定 word = “ABCB”, 返回 false 思路:原创 2020-09-30 15:30:11 · 109 阅读 · 0 评论 -
leetcdode- 687. 最长同值路径
最长同值路径 给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。 注意:两个节点之间的路径长度由它们之间的边数表示。 示例 1: 输入: 5 / \ 4 5 / \ \ 1 1 5 输出: 2 示例 2: 输入: 1 / \ 4 5 / \ \ 4 4 5 输.原创 2020-09-30 09:57:16 · 91 阅读 · 0 评论 -
leetcode-
找两个和为目标值且不重叠的子数组 给你一个整数数组 arr 和一个整数值 target 。 请你在 arr 中找 两个互不重叠的子数组 且它们的和都等于 target 。可能会有多种方案,请你返回满足要求的两个子数组长度和的 最小值 。 请返回满足要求的最小长度和,如果无法找到这样的两个子数组,请返回 -1 。 示例 1: 输入:arr = [3,2,2,4,3], target = 3 输出:2 解释:只有两个子数组和为 3 ([3] 和 [3])。它们的长度和为 2 。 示例 2: 输入:arr =.原创 2020-09-24 15:21:48 · 97 阅读 · 0 评论 -
动态规划:最长上升子序列(java)
最长上升子序列:要求球数组当中严格递增的子序列,可以不连续。 思路:设一个数组,保存以当前元素结尾的最长递增子串。 例如,1结尾的最长递增子串是1个元素,3结尾的最长递增子串是2各元素,2结尾的最长递增子串是2各元素,计算5结尾的时候,先求max之前所有元素的最长递增子串,然后1<5,所以生成2,。3<5,所以生成3。2<5,所以生成3,所以5的位置上是3. 再看1, imp...原创 2020-02-25 17:51:13 · 1737 阅读 · 0 评论 -
分治法:求数组中最值问题
给定一个数组返回最大值。 可以遍历数组,但是时间复杂度是On 现在用分治法:时间复杂度是Ologn 或者使用Arrays先对数组进行升序排序,输出最后一个元素也行。 import java.util.Arrays; public class maxSubstring { public static int getArrMaxDivide(Integer arr[], int strat, ...原创 2020-02-25 14:09:51 · 580 阅读 · 0 评论 -
动态规划:返回数组最大子序和(java)
给定一个整数数组,返回数组中连续的最大子序和。 声明一个同样大小的辅助数组temp,保存当前位置最大的子序和。 然后对这个temp数组求最大值。 求数组的最大值可以用 分治法 或者 调用Arrays的API import java.util.Arrays; public class maxSubstring { public static int getArrMaxDivide(Inte...原创 2020-02-25 14:03:26 · 399 阅读 · 0 评论