
LeetCode
文章平均质量分 79
LeetCode
yleavesw
这个作者很懒,什么都没留下…
展开
-
股票问题
文章目录121.买卖股票的最佳时机解法1:122.买卖股票的最佳时机 II解法1:贪心1解法2:贪心2解法3:动态规划空间优化123. 买卖股票的最佳时机 III解法1:动态规划188. 买卖股票的最佳时机 IV解法1:动态规划309. 最佳买卖股票时机含冷冻期解法1:动态规划714. 买卖股票的最佳时机含手续费解法1:贪心解法2:动态规划股票问题小结总结一下力扣上的股票交易问题。有:121.买卖股票的最佳时机122. 买卖股票的最佳时机 II123. 买卖股票的最佳时机 III1原创 2021-01-10 14:18:35 · 762 阅读 · 0 评论 -
LeetCode 399.除法求值
https://leetcode-cn.com/problems/evaluate-division/ 给出方程式 A / B = k, 其中 A 和 B 均为用字符串表示的变量, k 是一个浮点型数字。根据已知方程式求解问题,并返回计算结果。如果结果不存在,则返回 -1.0。 输入总是有效的。你可以假设除法运算中不会出现除数为 0 的情况,且不存在任何矛盾的结果。示例 1:输入:equations = [["a","b"],["b","c"]], values = [2.0,3.0], qu原创 2021-01-05 17:44:42 · 368 阅读 · 0 评论 -
LeetCode 279. 完全平方数
https://leetcode-cn.com/problems/perfect-squares/ 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例 1:输入: n = 12输出: 3解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.解法1:递归 + 记忆数组 对于一个正整数数 n,我们需要找出它的最少完全平方数的组合个数。 首先原创 2021-01-04 19:19:27 · 415 阅读 · 0 评论 -
LeetCode 5620.连续连接的二进制数字
文章目录写法1 :耿直模拟写法2 :二进制移位模拟 第一次 JS 双百,虽然是虚假的双百 ????写法1 :耿直模拟 使用 JS 中的进制转换函数 toString 和 parseInt 实现模拟。 toString 能将十进制数字转换为任意进制数字,如 (5).toString(2) = 101 parseInt 能将二进制数字转换为十进制数字,如 parseInt('101', 2) = 5 不过这种写法效率可能有点差,会超时…var concatenatedBinary =原创 2020-12-06 15:44:50 · 200 阅读 · 0 评论 -
LeetCode 140. 单词拆分 II
文章目录解法1:回溯 + 记忆数组,记录当前字符串解法2:回溯 + 记忆数组,记录索引 `i` 到字符结尾的字符串能拆分的组合https://leetcode-cn.com/problems/word-break-ii/难度:困难 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。说明:分隔时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入:s =原创 2020-11-16 18:17:37 · 151 阅读 · 0 评论 -
LeetCode 25. K 个一组翻转链表
https://leetcode-cn.com/problems/reverse-nodes-in-k-group/难度:困难 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 示例: 给你这个链表:1->2->3->4->5 当 k = 2 时,应当返回: 2->1->4->3->5 当 k =原创 2020-11-14 21:29:21 · 117 阅读 · 0 评论 -
LeetCode 144. 二叉树的前序遍历
https://leetcode-cn.com/problems/binary-tree-preorder-traversal/难度:中等 给定一个二叉树,返回它的 前序 遍历。示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]进阶: 递归算法很简单,你可以通过迭代算法完成吗?解法1:迭代 能使用递归完成的算法,一般也能使用迭代来完成,递归其实就是使用了栈来保存当前的上下文环境,因此可以自定义栈来保存所需的原创 2020-10-27 14:09:50 · 142 阅读 · 0 评论 -
LeetCode 845. 数组中的最长山脉
https://leetcode-cn.com/problems/longest-mountain-in-array/难度:中等 我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山脉”:B.length >= 3存在 0 < i < B.length - 1 使得 B[0] < B[1] < ... B[i-1] < B[i] > B[i+1] > ... > B[B.length - 1](注意:B 可以是 A 的任意子数组原创 2020-10-25 21:35:09 · 286 阅读 · 0 评论 -
LeetCode 1024. 视频拼接
文章目录题意简述解法1:贪心 + 特判解法2:贪心解法3:动态规划 今天是 10.24,照常打开了力扣,就看到了首页上的 1024大冒险 点开玩了下,还蛮有意思的,不过没点几下就挂了,还得做这个第 1024 题才能复活,然后这题还是今天的每日一题,嗯,有点意思,八说了,祝大家 1024 快乐!开冲!https://leetcode-cn.com/problems/video-stitching/难度:中等 你将会获得一系列视频片段,这些片段来自于一项持续时长为 T 秒的体育赛事。这些片段可原创 2020-10-24 20:40:30 · 13419 阅读 · 0 评论 -
LeetCode 236. 二叉树的最近公共祖先
文章目录解法1:保存祖先节点+逐个判断解法2:深度优先遍历解法3:记录祖先节点https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/难度:中等 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定原创 2020-10-23 13:35:47 · 191 阅读 · 0 评论 -
LeetCode 763. 划分字母区间
文章目录解法1:记录最大最小下标解法2:贪心https://leetcode-cn.com/problems/partition-labels/难度:中等 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。 示例 1: 输入:S = "ababcbacadefegdehijhklij" 输出:[9,7,8] 解释:划分结果为 “ababcbaca”, “defegde”, “hijhkli原创 2020-10-22 10:24:43 · 131 阅读 · 0 评论 -
LeetCode 52. N皇后 II
https://leetcode-cn.com/problems/n-queens-ii/难度:困难 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 上图为 8 皇后问题的一种解法。 给定一个整数 n,返回 n 皇后不同的解决方案的数量。示例:输入: 4输出: 2解释: 4 皇后问题存在如下两个不同的解法。[ [".Q..", // 解法 1 "...Q", "Q...", "..Q."], ["..Q.",原创 2020-10-17 12:19:43 · 109 阅读 · 0 评论 -
LeetCode 51. N皇后
https://leetcode-cn.com/problems/n-queens/难度:困难 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 图为 8 皇后问题的一种解法。 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。 每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。示例:输入:4输出:[ [".Q..", // 解法 1 "...Q", "Q.原创 2020-10-17 12:19:08 · 118 阅读 · 0 评论 -
LeetCode 116. 填充每个节点的下一个右侧节点指针
https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node/难度:中等 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;} 填充它的每个 next指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next指原创 2020-10-15 14:50:43 · 138 阅读 · 0 评论 -
LeetCode 406. 根据身高重建队列
https://leetcode-cn.com/problems/queue-reconstruction-by-height/难度:中等 假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意: 总人数少于1100人。示例输入: [[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出: [[5,0], [7,0], [5,2], [6原创 2020-10-04 21:37:31 · 194 阅读 · 0 评论 -
LeetCode 145. 二叉树的后序遍历
给定一个二叉树,返回它的 后序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1]进阶: 递归算法很简单,你可以通过迭代算法完成吗?解法1:借助栈进行后序非递归遍历 后序非递归遍历的关键点在于判断遍历过程中什么时候该往右走,什么时候该访问节点内容。 我们使用一个栈来保存遍历路径上的节点,步骤如下:一直往左孩子遍历,遍历过程中保存遍历的节点当左孩子为空时,我们访问右孩子当左右孩子都为空时,我们访问这个节原创 2020-09-30 23:29:30 · 145 阅读 · 0 评论 -
LeetCode 501. 二叉搜索树中的众数
https://leetcode-cn.com/problems/find-mode-in-binary-search-tree/难度:简单 给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。假定 BST 有如下定义:结点左子树中所含结点的值小于等于当前结点的值结点右子树中所含结点的值大于等于当前结点的值左子树和右子树都是二叉搜索树例如: 给定 BST [1,null,2,2], 1 \ 2 /原创 2020-09-24 15:09:16 · 219 阅读 · 0 评论 -
LeetCode 968. 监控二叉树
https://leetcode-cn.com/problems/binary-tree-cameras/难度:困难给定一个二叉树,我们在树的节点上安装摄像头。节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。计算监控树的所有节点所需的最小摄像头数量。示例 1: 输入:[0,0,null,0,0]输出:1解释:如图所示,一台摄像头足以监控所有节点。示例 2: 输入:[0,0,null,0,null,0,null,null,0]输出:2解释:需要至少两个摄像头来监视树的所原创 2020-09-22 22:06:55 · 188 阅读 · 0 评论 -
LeetCode 685. 冗余连接 II
文章目录解法1:并查集https://leetcode-cn.com/problems/redundant-connection-ii/难度:困难 在本问题中,有根树指满足以下条件的有向图。该树只有一个根节点,所有其他节点都是该根节点的后继。每一个节点只有一个父节点,除了根节点没有父节点。 输入一个有向图,该图由一个有着N个节点 (节点值不重复1, 2, …, N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。 结果图是一个以边组成的二维数原创 2020-09-19 10:41:07 · 216 阅读 · 0 评论 -
LeetCode 47. 全排列 II
文章目录解法1:回溯 + 剪枝https://leetcode-cn.com/problems/permutations-ii/难度:中等 给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]]解法1:回溯 + 剪枝 这题求全排列的步骤与 46.全排列 这题是一样的,区别就是 46. 这题给的数字序列是不含重复的数字,而本题则包含重复数字。 这样的话,我们只需要在原先的基础上原创 2020-09-19 10:39:50 · 225 阅读 · 0 评论 -
LeetCode 46. 全排列
文章目录解法1:回溯法https://leetcode-cn.com/problems/permutations/难度:中等 给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]解法1:回溯法 对于一组没有重复数字的序列,要求它的全排列,假设这个序列是 [1, 2, 3],若用手算,我们是这样算的:固定索原创 2020-09-19 10:36:36 · 129 阅读 · 0 评论