
java算法
lieom87852
这个作者很懒,什么都没留下…
展开
-
递归的记录
递归:不断调用自身。先不断调用,然后再不断回溯。这次计算f(2)=2+f(1)=2+1+f(0)=2+1+0=3f(2)=2+f(1)=2+1+f(0)=2+1+0=3。我们从中总结两个规律:1.递归函数必须要有终止条件,否则会出错;2.递归函数先不断调用自身,直到遇到终止条件后进行回溯,最终返回答案。递归leetcode3. 递归解法根据以上规律考虑本题目:终止条件:当两个链表都为空时,表示我们对链表已合并完成。如何递归:我们判断 l1 和 l2 头结点哪个更小,然后较小结点的 next原创 2021-11-07 16:15:53 · 136 阅读 · 0 评论 -
LeetCode1143. 最长公共子序列
给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。若这两个字符串没有公共子序列,则返回 0。示例 1:输入:text1 = “abcde”, text2 = “ace”原创 2021-01-05 21:56:57 · 141 阅读 · 1 评论 -
【一句话搞懂算法题】LeetCode532. 数组中的K-diff数对
**题意:**给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对。这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k.【一句话解析】:借助hashmap,for循环进行差值的计算,存入hashmap,利用hashmap的key不可重复特性。【用到的方法】:HashMap。class Soluti...原创 2020-04-11 21:13:57 · 97 阅读 · 0 评论 -
【一句话搞懂算法题】LeetCode1021. 删除最外层的括号
**题意:**有效括号字符串为空 ("")、"(" + A + “)” 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,"","()","(())()" 和 “(()(()))” 都是有效的括号字符串。如果有效字符串 S 非空,且不存在将其拆分为 S = A+B 的方法,我们称其为原语(primitive),其中 A 和 B 都是非空有效括号字符串。给出一个...原创 2020-03-19 21:35:57 · 185 阅读 · 0 评论 -
【一句话搞懂算法题】LeetCode938. 二叉搜索树的范围和
**题意:**给定二叉搜索树的根结点 root,返回 L 和 R(含)之间的所有结点的值的和。二叉搜索树保证具有唯一的值。【一句话解析】:深搜递归遍历,判断该节点的值是否在L和R之间,如果在,就计数。【用到的方法】:深搜。/** * Definition for a binary tree node. * public class TreeNode { * int val;...原创 2020-03-18 21:52:18 · 94 阅读 · 0 评论 -
【一句话搞懂算法题】LeetCode1221. 分割平衡字符串
**题意:**在一个「平衡字符串」中,‘L’ 和 ‘R’ 字符的数量是相同的。给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。返回可以通过分割得到的平衡字符串的最大数量。【一句话解析】:使用java栈,每次判断,与栈顶不一样就pop,与栈顶相同就push,栈空时,计数加一。【用到的库】:Stack,charAt。class Solution { public int ...原创 2020-03-18 20:18:46 · 221 阅读 · 0 评论 -
【一句话搞懂算法题】LeetCode1266.访问所有点的最小时间
题意:平面上有 n 个点,点的位置用整数坐标表示 points[i] = [xi, yi]。请你计算访问所有这些点需要的最小时间(以秒为单位)。你可以按照下面的规则在平面上移动:每一秒沿水平或者竖直方向移动一个单位长度,或者跨过对角线(可以看作在一秒内向水平和竖直方向各移动一个单位长度)。必须按照数组中出现的顺序来访问这些点。【一句话解析】:每次计算两个坐标的最短路径,先斜着走,再水平or...原创 2020-03-18 16:38:11 · 330 阅读 · 0 评论