![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 94
qq_35971301
这个作者很懒,什么都没留下…
展开
-
算法笔记
这里写自定义目录标题算法笔记第一节课 :第二节课 : 异或运算新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入算法笔记第一节课 :时间复杂度空间复杂度简单排序:选择排序冒泡排序插入排序二分法 :1: 在原创 2021-01-16 14:28:55 · 174 阅读 · 0 评论 -
leecode算法《215. 数组中的第K个最大元素》详解有注释,简单明了。
leecode算法《215. 数组中的第K个最大元素》详解有注释,简单明了。原题内容在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k...原创 2019-08-21 19:45:56 · 90 阅读 · 0 评论 -
leecode算法《496. 下一个更大元素 I》详解有注释,简单明了。
leecode算法《496. 下一个更大元素 I》详解有注释,简单明了。原题内容给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出-1。示例 1:...原创 2019-08-13 09:52:28 · 161 阅读 · 0 评论 -
leecode算法《11. 盛最多水的容器》详解有注释,简单明了。
leecode算法《11. 盛最多水的容器》详解有注释,简单明了。原题内容给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 ...原创 2019-08-22 13:08:49 · 175 阅读 · 0 评论 -
leecode算法《15. 三数之和》详解有注释,简单明了。
leecode算法《15. 三数之和》详解有注释,简单明了。原题内容给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1...原创 2019-08-17 14:39:37 · 171 阅读 · 0 评论 -
leecode算法《237. 删除链表中的节点》详解有注释,简单明了。
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入:...原创 2019-08-22 15:04:07 · 137 阅读 · 0 评论 -
leecode算法《34. 在排序数组中查找元素的第一个和最后一个位置》详解有注释,简单明了。
leecode算法《34. 在排序数组中查找元素的第一个和最后一个位置》详解有注释,简单明了。原题内容给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], targe...原创 2019-08-18 15:18:33 · 123 阅读 · 0 评论 -
leecode算法《70. 爬楼梯》详解有注释,简单明了。
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶...原创 2019-08-27 08:52:06 · 239 阅读 · 0 评论 -
leecode算法《160. 相交链表》详解有注释,简单明了。
leecode算法《160. 相交链表》详解有注释,简单明了。假设你正在爬楼梯。需要 n 阶你才能到达楼顶。编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:R...原创 2019-08-27 13:21:20 · 297 阅读 · 0 评论 -
leecode算法《206. 反转链表》详解有注释,简单明了。
leecode算法《206. 反转链表》详解有注释,简单明了。反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/p...原创 2019-08-28 13:35:57 · 181 阅读 · 0 评论 -
leecode算法《146. LRU缓存机制》详解有注释,简单明了。
leecode算法《146. LRU缓存机制》详解有注释,简单明了。原题内容运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,...原创 2019-08-30 21:51:24 · 189 阅读 · 0 评论 -
leecode算法《17. 电话号码的字母组合》详解有注释,简单明了。
leecode算法《17. 电话号码的字母组合》详解有注释,简单明了。原题内容给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].说明:尽管上面的答案是按字典序排...原创 2019-08-31 20:40:56 · 172 阅读 · 0 评论 -
leecode算法《56. 合并区间》详解有注释,简单明了。
leecode算法《56. 合并区间》详解有注释,简单明了。原题内容给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]...原创 2019-09-01 22:51:24 · 149 阅读 · 0 评论 -
leecode算法《292. Nim 游戏》详解有注释,简单明了。
leecode算法《292. Nim 游戏》详解有注释,简单明了。原题内容你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false 解释: 如果堆中有 4 块石头,那么...原创 2019-09-05 11:01:42 · 137 阅读 · 0 评论 -
leecode算法《53. 最大子序和》详解有注释,简单明了。
leecode算法《292. Nim 游戏》详解有注释,简单明了。原题内容给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求...原创 2019-09-05 12:07:13 · 135 阅读 · 0 评论 -
leecode算法《257. 二叉树的所有路径》详解有注释,简单明了。
leecode算法《257. 二叉树的所有路径》详解有注释,简单明了。原题内容给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。示例:输入: 1 / \2 3 \ 5输出: [“1->2->5”, “1->3”]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3...原创 2019-08-21 19:18:43 · 138 阅读 · 0 评论 -
leecode算法《19. 删除链表的倒数第N个节点》详解有注释,简单明了。
leecode算法《19. 删除链表的倒数第N个节点》详解有注释,简单明了。原题内容给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗...原创 2019-08-16 15:22:53 · 74 阅读 · 0 评论 -
leecode算法《24. 两两交换链表中的节点》详解有注释,简单明了。
leecode算法《24. 两两交换链表中的节点》详解有注释,简单明了。原题内容给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.来源:力扣(LeetCode)链接:https://leetcode-cn.co...原创 2019-08-18 18:45:48 · 84 阅读 · 0 评论 -
leecode算法《14. 最长公共前缀》详解有注释,简单明了。
leecode算法《14. 最长公共前缀》详解有注释,简单明了。原题内容编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母...原创 2019-08-19 20:50:05 · 121 阅读 · 0 评论 -
leecode算法《283. 移动零》详解有注释,简单明了。
leecode算法《283. 移动零》详解有注释,简单明了。原题内容给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/...原创 2019-08-14 19:16:57 · 99 阅读 · 0 评论 -
leecode算法《104. 二叉树的最大深度》详解有注释,简单明了。
leecode算法《104. 二叉树的最大深度》详解有注释,简单明了。原题内容给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最大深度 3 。来源:力扣(LeetCode)链接:htt...原创 2019-08-20 10:39:49 · 117 阅读 · 0 评论 -
leecode算法《222. 完全二叉树的节点个数》详解有注释,简单明了。
leecode算法《222. 完全二叉树的节点个数》详解有注释,简单明了。原题内容给出一个完全二叉树,求出该树的节点个数。说明:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。示例:输入: 1 / \ 2 3 /...原创 2019-08-20 10:49:16 · 103 阅读 · 0 评论 -
leecode算法《20. 有效的括号》详解有注释,简单明了。
leecode算法《20. 有效的括号》详解有注释,简单明了。原题内容给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例...原创 2019-08-15 10:18:57 · 101 阅读 · 0 评论 -
leecode算法《101. 对称二叉树》详解有注释,简单明了。
leecode算法《101. 对称二叉树》详解有注释,简单明了。原题内容给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:说明:如果你可以运用递归和迭代两种方法解决这个问题,会很加分。来源:力扣(LeetCode)链接:https://leetcode-cn...原创 2019-08-15 13:19:32 · 146 阅读 · 0 评论 -
leecode算法不含 AAA 或 BBB 的字符串详解有注释,简单明了。
leecode算法不含 AAA 或 BBB 的字符串详解有注释,简单明了。原题内容给定两个整数 A 和 B,返回任意字符串 S,要求满足:S 的长度为 A + B,且正好包含 A 个 ‘a’ 字母与 B 个 ‘b’ 字母;子串 ‘aaa’ 没有出现在 S 中;子串 ‘bbb’ 没有出现在 S 中。示例 1:输入:A = 1, B = 2输出:“abb”解释:“abb”, “bab...原创 2019-08-11 17:25:09 · 340 阅读 · 0 评论 -
leecode算法《统计所有小于非负整数 n 的质数的数量》详解有注释,简单明了。
leecode算法不含 AAA 或 BBB 的字符串详解有注释,简单明了。原题内容统计所有小于非负整数 n 的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/count-primes/著作权归领扣网络所有。商业转...原创 2019-08-11 18:23:20 · 1147 阅读 · 0 评论 -
leecode算法《验证回文串》详解有注释,简单明了。
leecode算法《验证回文串》详解有注释,简单明了。原题内容给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:输入: “race a car”输出: false来源:力扣(LeetCode)...原创 2019-08-11 19:30:41 · 120 阅读 · 0 评论 -
leecode算法《两个数组的交集》详解有注释,简单明了。
leecode算法《两个数组的交集》详解有注释,简单明了。原题内容给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的...原创 2019-08-11 23:48:15 · 112 阅读 · 0 评论 -
leecode算法《最小差值 I》详解有注释,简单明了。
leecode算法《最小差值 I》详解有注释,简单明了。原题内容给定一个整数数组 A,对于每个整数 A[i],我们可以选择任意 x 满足 -K <= x <= K,并将 x 加到 A[i] 中。在此过程之后,我们得到一些数组 B。返回 B 的最大值和 B 的最小值之间可能存在的最小差值。示例 1:输入:A = [1], K = 0输出:0解释:B = [1]示例 2:...原创 2019-08-12 13:15:21 · 275 阅读 · 0 评论 -
leecode算法《136. 只出现一次的数字》详解有注释,简单明了。
leecode算法《136. 只出现一次的数字》详解有注释,简单明了。原题内容给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4来源:力扣(LeetCode)链接...原创 2019-08-16 10:12:00 · 167 阅读 · 0 评论 -
leecode算法《739. 每日温度》详解有注释,简单明了。
leecode算法《739. 每日温度》详解有注释,简单明了。原题内容根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, ...原创 2019-08-13 12:47:38 · 243 阅读 · 0 评论