LeetCode
学市场营销只有饿死
求求各位大哥点个关注,爱你么么哒
展开
-
算法 快速排序 代码详解
快速排序问题分析所谓排序,是指在一个数据集合内原创 2020-09-05 23:11:08 · 189 阅读 · 0 评论 -
LeetCode 647. 回文子串
LeetCode 647. 回文子串题目 647. 回文子串给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。 示例 1:输入:"abc"输出:3解释:三个回文子串: "a", "b", "c"示例 2:输入:"aaa"输出:6解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa"思路暴力就完事,马拉车这辈子都用不上的。中心扩展思路,因为可能从一原创 2020-08-19 13:30:45 · 155 阅读 · 0 评论 -
LeetCode 110.平衡二叉树
LeetCode 110.平衡二叉树题目110. 平衡二叉树给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4] 1 / \原创 2020-08-17 20:10:58 · 105 阅读 · 0 评论 -
LeetCode 733. 图像渲染
LeetCode 733. 图像渲染题目 733. 图像渲染有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newColor,让你重新上色这幅图像。为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应四个方向上像素值与初始坐标相同的相连像素点,……,重复该过程。将原创 2020-08-16 22:24:54 · 71 阅读 · 0 评论 -
LeetCode 133. 克隆图
LeetCode 133. 克隆图题目133. 克隆图给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。class Node { public int val; public List<Node> neighbors;} 测试用例格式:简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1(val = 1),第二个节点值为 2(val = 2原创 2020-08-12 23:01:35 · 126 阅读 · 0 评论 -
LeetCode 99. 恢复二叉搜索树
LeetCode 99. 恢复二叉搜索树题目99. 恢复二叉搜索树二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。示例 1:输入: [1,3,null,null,2] 1 / 3 \ 2输出: [3,1,null,null,2] 3 / 1 \ 2示例 2:输入: [3,1,4,null,null,2] 3 / \1 4 / 2输出: [2,1,4,null,null,3]原创 2020-08-09 01:18:14 · 612 阅读 · 0 评论 -
LeetCode 100. 相同的树
LeetCode 100. 相同的树题目给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 1 / \原创 2020-08-07 23:20:44 · 144 阅读 · 0 评论 -
LeetCode 632. 最小区间
LeetCode 632. 最小区间題目 632. 最小区间你有 k 个升序排列的整数数组。找到一个最小区间,使得 k 个列表中的每个列表至少有一个数包含在其中。我们定义如果 b-a < d-c 或者在 b-a == d-c 时 a < c,则区间 [a,b] 比 [c,d] 小。示例 1:输入:[[4,10,15,24,26], [0,9,12,20], [5,18,22,30]]输出: [20,24]解释: 列表 1:[4, 10, 15, 24, 26],24 在区原创 2020-08-02 01:14:52 · 247 阅读 · 0 评论 -
LeetCode 415. 字符串相加
LeetCode 415. 字符串相加题目415. 字符串相加给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 注意: num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。思路模拟加法,从后面相加,用字符串存储,因为从后面加可以避免掉处理长度不一的特殊情况代码class Solution {原创 2020-07-31 10:03:01 · 100 阅读 · 0 评论 -
LeetCode 36. 有效的数独
LeetCode 36. 有效的数独题目 36. 有效的数独判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 '.' 表示。示例 1:输入:[ ["5","3",".",".","7",".",".",".","."], ["6原创 2020-07-30 17:14:31 · 239 阅读 · 0 评论 -
LeetCode 343. 整数拆分 DP
LeetCode 343. 整数拆分 DP题目 343. 整数拆分给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。说明: 你可以假设 n 不小于 2 且不大于 58。通过次数47,378提交次数81,471思路类似于Fib,第n个数原创 2020-07-30 16:25:45 · 151 阅读 · 0 评论 -
LeetCode 103. 二叉树的锯齿形层次遍历
103. 二叉树的锯齿形层次遍历题目给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[ [3], [20,9], [15,7]]通过次数60,857提交次数111,189来源:力扣(LeetCode)链接:https://leet原创 2020-07-28 16:23:11 · 373 阅读 · 0 评论 -
LeetCode 113. 路径总和 II
113. 路径总和 II题目给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1返回:[ [5,原创 2020-07-28 16:20:21 · 187 阅读 · 0 评论 -
LeetCode 329. 矩阵中的最长递增路径
329. 矩阵中的最长递增路径题目给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。 示例 1:输入: nums = [ [9,9,4], [6,6,8], [2,1,1]] 输出: 4 解释: 最长递增路径为 [1, 2, 6, 9]。示例 2:输入: nums = [ [3,4,5], [3,2,6], [2,2,1]] 输出: 4 解释:原创 2020-07-26 19:30:27 · 856 阅读 · 0 评论 -
Leetcode 35. 搜索插入位置
插入搜索位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0来源:力扣(LeetCode)链接:https://leetcode-cn.com/problem原创 2020-07-17 12:43:08 · 97 阅读 · 0 评论 -
LeetCode 785. 判断二分图
LeetCode 785. 判断二分图思路染色问题,很简单,dfs对附近的点走下一个颜色,如果下一个颜色冲突返回false,本个也就直接false。问题一般出在只对一个点进行dfs,因为是无向环图,所以可能出现子图无法被第一个点访问到的问题,所以要对所有点进行dfs染色。代码class Solution { public int [] color; public int [][] graph; public boolean isBipartite(int[][] gra原创 2020-07-16 01:51:26 · 90 阅读 · 0 评论 -
LeetCode 802. 找到最终的安全状态
LeetCode 802. 找到最终的安全状态题目 在有向图中, 我们从某个节点和每个转向处开始, 沿着图的有向边走。 如果我们到达的节点是终点 (即它没有连出的有向边), 我们停止。现在, 如果我们最后能走到终点,那么我们的起始节点是最终安全的。 更具体地说, 存在一个自然数 K, 无论选择从哪里开始行走, 我们走了不到 K 步后必能停止在一个终点。哪些节点最终是安全的? 结果返回一个有序的数组。该有向图有 N 个节点,标签为 0, 1, ..., N-1, 其中 N 是 graph 的原创 2020-06-02 23:31:35 · 106 阅读 · 0 评论 -
LeetCode 5425. 切割后面积最大的蛋糕
LeetCode 5425. 切割后面积最大的蛋糕题目矩形蛋糕的高度为 h 且宽度为 w,给你两个整数数组 horizontalCuts 和 verticalCuts,其中 horizontalCuts[i] 是从矩形蛋糕顶部到第 i 个水平切口的距离,类似地, verticalCuts[j] 是从矩形蛋糕的左侧到第 j 个竖直切口的距离。请你按数组 horizontalCuts 和 verticalCuts 中提供的水平和竖直位置切割后,请你找出 面积最大 的那份蛋糕,并返回其 面积 。由于答案原创 2020-06-01 02:01:41 · 183 阅读 · 0 评论 -
LeetCode 463. 岛屿的周长
LeetCode 463. 岛屿的周长463. 岛屿的周长给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。 示例 :输入:[[0,1,0,0],原创 2020-05-31 02:18:00 · 105 阅读 · 0 评论 -
LeetCode 210. 课程表 II
LeetCode 210. 课程表 II思路topsort,需要先完成的指向后完成的,入读为0,则无前继课程或前继课程已被防止在list中代码class Solution { static int V; static int[] degree; static int[] head; static edge[] edges; static int count; static class edge { int to; int next; public edge(int原创 2020-05-18 03:25:41 · 123 阅读 · 0 评论 -
LeetCode 面试题66. 构建乘积数组
LeetCode 面试题66. 构建乘积数组题目 给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B 中的元素 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。 示例:输入: [1,2,3,4,5]输出: [120,60,40,30,24] 提示:所有元素乘积之和不会溢出 32 位整数a.length <= 100000来源:力扣(LeetCode)链接:https://leet原创 2020-05-13 00:43:40 · 123 阅读 · 0 评论 -
LeetCode 155. 最小栈 双链表
LeetCode 155. 最小栈 双链表题目 155. 最小栈设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。 示例:输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[原创 2020-05-12 02:59:57 · 107 阅读 · 0 评论 -
LeetCode 50. Pow(x, n)
50. Pow(x, n)题目实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 100.0n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。来源:原创 2020-05-11 22:59:14 · 123 阅读 · 0 评论 -
LeetCode236. 二叉树的最近公共祖先
LeetCode236. 二叉树的最近公共祖先题目 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p原创 2020-05-10 16:14:03 · 100 阅读 · 0 评论 -
LeetCode 4. 寻找两个正序数组的中位数
LeetCode 4. 寻找两个正序数组的中位数题目4. 寻找两个正序数组的中位数给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。 示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位数是 (2原创 2020-05-09 13:53:05 · 146 阅读 · 0 评论 -
LeetCode 69. x 的平方根
LeetCode 69. x 的平方根实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sqrtx著作权归领扣网原创 2020-05-09 13:19:21 · 90 阅读 · 0 评论 -
LeetCode 1277. 统计全为 1 的正方形子矩阵
LeetCode 1277. 统计全为 1 的正方形子矩阵题目给你一个 m * n 的矩阵,矩阵中的元素不是 0 就是 1,请你统计并返回其中完全由 1 组成的 正方形 子矩阵的个数。示例 1:输入:matrix =[ [0,1,1,1], [1,1,1,1], [0,1,1,1]]输出:15解释: 边长为 1 的正方形有 10 个。边长为 2 的正方形有 ...原创 2020-05-08 01:17:06 · 198 阅读 · 1 评论 -
LeetCode 14. 最长公共前缀
14. 最长公共前缀题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。来源:力扣(LeetCode)链接:https://leetcod...原创 2020-05-07 17:27:19 · 88 阅读 · 0 评论 -
LeetCode 2. 两数相加
LeetCode 2. 两数相加题目 2. 两数相加给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -&g...原创 2020-05-07 17:11:11 · 106 阅读 · 0 评论 -
LeetCode 572. 另一个树的子树 递归 二叉树的遍历
LeetCode 572. 另一个树的子树 递归 二叉树的遍历思路递归先序列遍历二叉树,每遇到一个节点,就进行一次是否为相同树判断。复杂度O(n*k) k为子树大小。问题主要在于如何判断是否存在超出子树的部分,可以通过递归到底层的时候进行判断,t为null,那么肯定不会相同,如果匹配树存在节点,而子树已经没有子节点,同样也是错误的匹配class Solution { stati...原创 2020-05-07 16:18:44 · 152 阅读 · 0 评论 -
LeetCode 983. 最低票价 动态规划
LeetCode 983. 最低票价 动态规划题目 在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。火车票有三种不同的销售方式:一张为期一天的通行证售价为 costs[0] 美元;一张为期七天的通行证售价为 costs[1] 美元;一张为期三十天的通行证售价为 c...原创 2020-05-06 15:51:35 · 113 阅读 · 0 评论 -
LeetCode 98. 验证二叉搜索树 中序遍历二叉树
LeetCode 98. 验证二叉搜索树 中序遍历二叉树题目给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / ...原创 2020-05-05 11:10:25 · 169 阅读 · 0 评论 -
LeetCode 684. 冗余连接
LeetCode 684. 冗余连接求求各位哥哥看了,给小弟点个赞,收藏一下,爱你们题目在本问题中, 树指的是一个连通且无环的无向图。输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, ..., N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v] ,满足 u &...原创 2020-05-04 19:40:22 · 186 阅读 · 2 评论 -
并查集 LeetCode547. 朋友圈
并查集 LeetCode547. 朋友圈题目班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个 N * N 的矩阵 M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道...原创 2020-05-04 19:24:09 · 217 阅读 · 3 评论 -
LeetCode 53. 最大子序和
问题描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-subarray著...原创 2020-05-03 09:49:08 · 155 阅读 · 0 评论