LeetCode
文章平均质量分 72
HaoTianYan
CVer, Super Resolution.
展开
-
【Leetcode_1143】最长公共子序列(LCS)
文章目录1. 题目2. 解题思路3. 代码(Java)1. 题目给定两个字符串 text1 和 text2,返回这两个字符串的 最长公共子序列的长度。如果不存在 公共子序列 ,返回 0 。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。示原创 2021-04-16 14:30:39 · 207 阅读 · 0 评论 -
【Leetcode_300】最长递增子序列(LIS)
文章目录1. 题目描述2. 解题思路2.1 定义状态 `dp[i]`2.2 状态转移方程2.3 初始化2.4 输出3. 代码(Java)4. 优化1. 题目描述LeetCode 300. 最长递增子序列最长递增子序列(LIS)和最长公共子序列(LCS)都是典型的动态规划问题。题目:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7]原创 2021-04-16 11:45:05 · 134 阅读 · 0 评论 -
【Leetcode 153、154、33、81、35】二分实现旋转数组问题【Java】
文章目录0. 二分法0.1 用二分的两个前提0.2 步骤0.3 注意事项154. 寻找旋转排序数组中的最小值 II1. 解题思路2. 代码(Java实现)153. 寻找旋转排序数组中的最小值35. 搜索插入位置代码33. 搜索旋转排序数组代码81. 搜索旋转排序数组 II解题思路代码旋转数组:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转0. 二分法0.1 用二分的两个前提【顺序存储】比如说数据存放在数组中,可以用索引 O(1) 时间内查找到数据;【有序】数组中原创 2021-04-15 21:09:59 · 103 阅读 · 0 评论 -
【Leetcode_1190】反转每对括号间的子串【Java实现】
0. 题目1190. 反转每对括号间的子串给出一个字符串 s(仅含有小写英文字母和括号)。请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。注意,您的结果中 不应 包含任何括号。示例1:输入:s = "(abcd)"输出:"dcba"示例 2:输入:s = "(u(love)i)"输出:"iloveu"示例 3:输入:s = "(ed(et(oc))el)"输出:"leetcode"示例 4:输入:s = "a(bcdefghijkl(m.原创 2021-04-14 22:40:33 · 402 阅读 · 0 评论 -
【Leetcode刷题】二叉树的前序、中序、后续遍历(非递归)【Java实现】
文章目录0. 整体思路1. 二叉树的前序遍历(非递归)2. 二叉树的中序遍历(非递归)3. 二叉树的后序遍历(非递归)0. 整体思路用非递归的方法解决二叉树的三种遍历问题,主要思想其实就是利用了栈,将暂时用不到的TreeNode节点存起来,先沿着某一分支(left或者right)走下去,等到了叶子节点(root==null)时再依次pop出来赋给root。二叉树结点TreeNode的定义:/** * Definition for a binary tree node. */public c原创 2021-04-13 21:04:05 · 186 阅读 · 0 评论