![](https://img-blog.csdnimg.cn/20200812095426670.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
LeetCode
文章平均质量分 95
LeetCode刷题笔记
你皮任你皮136
Fighting!
展开
-
【LeetCode】P222 完全二叉树的节点个数
P222 完全二叉树的节点个数文章目录P222 完全二叉树的节点个数题目描述题解方法一:DFS方法二:BFS方法三:二分查找 + 位运算题目链接:[222. 完全二叉树的节点个数](https://leetcode-cn.com/problems/count-complete-tree-nodes/).题目描述给出一个完全二叉树,求出该树的节点个数。说明:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置翻译 2021-01-10 21:20:05 · 97 阅读 · 0 评论 -
【LeetCode】P95 不同的二叉搜索树 II(未完结)
P95 不同的二叉搜索树 II文章目录P95 不同的二叉搜索树 II题目描述题解方法一:递归题目链接:95. 不同的二叉搜索树 II.题目描述给定一个整数 n,生成所有由 1 … n 为节点所组成的二叉搜索树 。示例:输入:3输出:[[1,null,3,2],[3,2,null,1],[3,1,null,null,2],[2,1,3],[1,null,2,null,3]]解释:以上的输出对应以下 5 种不同结构的二叉搜索树:二叉树结点的定义:struct TreeN原创 2020-09-22 13:14:53 · 147 阅读 · 0 评论 -
【LeetCode】P1143 最长公共子序列(LCS)
P1143 最长公共子序列文章目录P1143 最长公共子序列题目描述题解方法一:动态规划题目链接:1143. 最长公共子序列.题目描述给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所原创 2020-08-25 23:53:08 · 238 阅读 · 0 评论 -
【LeetCode】P300 最长上升子序列(未完结)
P11 最长上升子序列文章目录P11 最长上升子序列题目描述题解方法一:动态规划题目链接:300. 最长上升子序列.题目描述给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2)O(n^2)O(n2) 。进阶: 你能将算法的时间复杂度降低到原创 2020-08-25 14:51:41 · 128 阅读 · 1 评论 -
【LeetCode】P70 爬楼梯
P70 爬楼梯文章目录P70 爬楼梯题目描述题解方法一:递归方法二:记忆型递归方法三:动态规划方法四:通项公式的矩阵形式 + 矩阵快速幂方法五:直接返回结果题目链接:70. 爬楼梯.题目描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意: 给定 n 是一个正整数。示例:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1原创 2020-09-01 14:48:10 · 127 阅读 · 0 评论 -
【LeetCode】P32 最长有效括号(未完结)
P32 最长有效括号文章目录P32 最长有效括号题目描述题解方法一:动态规划方法二:栈题目链接:32. 最长有效括号.题目描述给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。示例:输入: “(()”输出: 2解释: 最长有效括号子串为 “()”输入: “)()())”输出: 4解释: 最长有效括号子串为 “()()”题解方法一:动态规划思路①将原问题分解为子问题子问题:“求以下标为 iii 的字符结尾的最长有效括号子串的长度”。定原创 2020-09-05 17:44:19 · 86 阅读 · 0 评论 -
【LeetCode】P11 盛最多水的容器
P11 盛最多水的容器文章目录P11 盛最多水的容器题目描述题解方法一:双指针题目链接:11. 盛最多水的容器.题目描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳原创 2020-08-21 14:33:18 · 133 阅读 · 0 评论 -
【LeetCode】P10 正则表达式匹配
P10 正则表达式匹配文章目录P10 正则表达式匹配题目描述题解方法一:动态规划题目链接:10. 正则表达式匹配.题目描述给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ’ . ’ 和 ’ * ’ 的正则表达式匹配。’ . ’ 匹配任意单个字符’ * ’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串 s 的,而不是部分字符串。说明s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例:原创 2020-08-21 10:32:59 · 205 阅读 · 0 评论 -
【LeetCode】P9 回文数
P9 回文数文章目录P9 回文数题目描述题解方法一:整数转化为字符串方法二:反转一半数字题目链接:9. 回文数.题目描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例:输入: 121输出: true输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将整原创 2020-08-20 14:23:47 · 169 阅读 · 0 评论 -
【LeetCode】P8 字符串转换整数 (atoi)(未完结)
P8 字符串转换整数 (atoi)文章目录P8 字符串转换整数 (atoi)题目描述题解方法一:方法二:自动机题目链接:8. 字符串转换整数 (atoi).题目描述请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形原创 2020-08-19 09:24:21 · 100 阅读 · 0 评论 -
【LeetCode】P7 整数反转
P7 整数反转文章目录P7 整数反转题目描述题解题目链接:7. 整数反转.题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例:输入: 123输出: 321输入: -123输出: -321输入: 120输出: 21假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,231−1][−2^{31}, 2^{31}−1][−231,231−1]。请根据这个假设,如果反转后整数溢出那么就返回 0。题解思路将 32原创 2020-08-18 20:24:01 · 119 阅读 · 0 评论 -
【LeetCode】P6 Z 字形变换
P6 Z 字形变换文章目录P6 Z 字形变换题目描述题解方法一:逐行访问方法二:逐行组合题目链接:6. Z 字形变换.题目描述将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numR原创 2020-08-18 00:04:19 · 179 阅读 · 0 评论 -
【LeetCode】P5 最长回文子串(未完结)
P5 最长回文子串文章目录P5 最长回文子串题目描述题解方法一:暴力算法方法二:中心扩散法方法三:动态规划题目链接:5. 最长回文子串.题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。输入: “cbbd”输出: “bb”题解方法一:暴力算法思路枚举出所有长度大于 1 的子串,逐个检验它们是否为回文子串,并找到最长回文子串。算法class原创 2020-08-16 15:22:28 · 105 阅读 · 0 评论 -
【LeetCode】P4 寻找两个正序数组的中位数
P4 寻找两个正序数组的中位数文章目录P4 寻找两个正序数组的中位数题目描述题解方法一:二分查找(中位数分割线)题目链接:4. 寻找两个正序数组的中位数.题目描述给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例:nums1 = [1, 3]nums2 = [2]则中位数是 2.0nums1 = [1, 2原创 2020-08-14 22:34:32 · 313 阅读 · 3 评论 -
【LeetCode】P3 无重复字符的最长子串
P3 无重复字符的最长子串文章目录P3 无重复字符的最长子串题目描述题解方法一:暴力算法方法二:滑动窗口(双指针)方法三:滑动窗口(hashset)题目链接:3. 无重复字符的最长子串.题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。输入: “pwwk原创 2020-08-12 23:43:09 · 103 阅读 · 0 评论 -
【LeetCode】P2 两数相加
P2 两数相加文章目录P2 两数相加题目描述题解题目链接:2. 两数相加.题目描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 +原创 2020-08-12 11:12:05 · 113 阅读 · 0 评论