![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
AntioniaMao
这个作者很懒,什么都没留下…
展开
-
[LeetCode]初级算法-字符串-有效字母的异位词
题目:有效字母的异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎...原创 2018-07-25 21:11:51 · 232 阅读 · 0 评论 -
LeetCode中级 二叉搜索树中第k小的元素
给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。示例 1:输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 1示例 2:输入: root = [5,3,6,2,4,null,null,...原创 2018-09-12 19:25:55 · 363 阅读 · 0 评论 -
LeetCode中级算法 二叉树的锯齿形层次遍历
给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[ [3], [20,9], [15,7]] /** * D...原创 2018-09-06 15:10:32 · 147 阅读 · 0 评论 -
LeetCode中级算法-相交链表
编写一个程序,找到两个单链表相交的起始节点。 例如,下面的两个链表:A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3在节点 c1 开始相交。 注意:如果两个链表没...原创 2018-09-05 19:46:11 · 201 阅读 · 0 评论 -
LeetCode中级算法-链表-奇偶链表
给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->5->...原创 2018-09-05 17:50:31 · 324 阅读 · 0 评论 -
[LeetCode]中级算法-两数相加
两数相加给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807 一贯的愚蠢暴力解...原创 2018-08-07 15:06:33 · 170 阅读 · 0 评论 -
[LeetCode]中计算法-递增的三元子序列
递增的三元子序列给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。数学表达式如下:如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ≤ n-1,使得 arr[i] < arr[j] < arr[k] ,返回 true ; 否则返回 false 。说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1) 。...原创 2018-08-07 14:25:18 · 297 阅读 · 0 评论 -
[LeetCode]中级算法-最长回文子串
最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: "babad"输出: "bab"注意: "aba"也是一个有效答案。示例 2:输入: "cbbd"输出: "bb" 目前能想到的就是暴力解法,双层for循环,依次以每一个字符作为子串的起始处,判断每一个可能的子串是否为回文子串cla...原创 2018-08-07 11:21:01 · 180 阅读 · 0 评论 -
[LeetCode]初级算法-动态规划-爬楼梯
爬楼梯假设你正在爬楼梯。需要 n 步你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 步 + 1 步2. 2 步示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 步 + 1 步 + 1 ...原创 2018-07-30 15:01:39 · 324 阅读 · 0 评论 -
[LeetCode]初级算法-查找-第一个错误的版本
第一个错误的版本你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version...原创 2018-07-30 14:41:06 · 686 阅读 · 0 评论 -
[LeetCode]初级算法-搜索-第一个错误的版本
public int firstBadVersion(int n) { if(n==2){ if(isBadVersion(2)&&!isBadVersion(1)){ return 2; }else{ return 1; ...原创 2018-07-30 11:42:28 · 175 阅读 · 0 评论 -
[LeetCode]初级算法-树-二叉树的层次遍历
二叉树的遍历给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]] 一开始的解法是,先层次遍历把所有的树节点存放...原创 2018-07-30 11:27:37 · 150 阅读 · 0 评论 -
[LeetCode]初级算法-字符串-最长公共前缀
标题:最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。原创 2018-07-25 21:47:21 · 244 阅读 · 0 评论 -
[LeetCode]初级算法-字符串-数数并说
标题:数数并说报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211 被读作 "one 1" ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被读作 "one 2", "one 1"原创 2018-07-25 21:42:24 · 468 阅读 · 0 评论 -
[LeetCode]初级算法-字符串- 实现strStr()
标题:实现strStr()实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack =...原创 2018-07-25 21:33:25 · 647 阅读 · 0 评论 -
[LeetCode]初级算法-字符串-字符串转整数(atoi)
标题:字符串转整数(atoi)实现 atoi,将字符串转为整数。在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有...原创 2018-07-25 21:26:26 · 280 阅读 · 0 评论 -
[LeetCode]初级算法-字符串-验证回文字符串
标题:验证回文字符串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false 总体还是比较简单的,首先去掉非字母和数字的其他...原创 2018-07-25 21:16:59 · 333 阅读 · 0 评论 -
LeetCode中级算法-每个节点的右向指针
给定一个二叉树struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。说明:...原创 2018-09-07 16:40:46 · 392 阅读 · 0 评论