leetcode
还没想好1234
开发转ai了
展开
-
207. 课程表
现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习?其实只要准备两个数组记录,count记录入度数量,incount记录图的状态,即i--->j是否存在路线,是则为1,否则为0;clas...原创 2018-09-26 16:40:02 · 320 阅读 · 0 评论 -
不同的二叉搜索树
96. 不同的二叉搜索树和95. 不同的二叉搜索树 II给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 ...原创 2018-08-28 16:55:12 · 272 阅读 · 0 评论 -
674. Longest Continuous Increasing Subsequence
674. 最长连续递增序列题目描述提示帮助提交记录社区讨论阅读解答随机一题给定一个未经排序的整数数组,找到最长且连续的的递增序列。示例 1:输入: [1,3,5,4,7]输出: 3解释: 最长连续递增序列是 [1,3,5], 长度为3。尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。 示例 2:输入: [2,2,2...原创 2018-08-24 10:36:38 · 114 阅读 · 0 评论 -
784. Letter Case Permutation java
784. 字母大小写全排列题目描述提示帮助提交记录社区讨论阅读解答随机一题给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。示例:输入: S = "a1b2"输出: ["a1b2", "a1B2", "A1b2", "A1B2"]输入: S = "3z4"输出: ["3z4",原创 2018-08-23 21:47:23 · 163 阅读 · 0 评论 -
872. Leaf-Similar Trees
872. 叶子相似的树题目描述提示帮助提交记录社区讨论阅读解答随机一题请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。举个例子,如上图所示,给定一颗叶值序列为 (6, 7, 4, 9, 8) 的树。如果有两颗二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。如果给定的两个头结点分别为 root1 和 root2 的树是叶相似的...原创 2018-08-23 21:20:29 · 119 阅读 · 0 评论 -
812. Largest Triangle Area
给定包含多个点的集合,从其中取三个点组成三角形,返回能组成的最大三角形的面积。示例:输入: points = [[0,0],[0,1],[1,0],[0,2],[2,0]]输出: 2解释: 这五个点如下图所示。组成的橙色三角形是最大的,面积为2。注意: 3 <= points.length <= 50. 不存在重复的点。 -50 <= ...原创 2018-08-23 20:59:54 · 150 阅读 · 0 评论 -
479. 最大回文数乘积 java
你需要找到由两个 n 位数的乘积组成的最大回文数。由于结果会很大,你只需返回最大回文数 mod 1337得到的结果。示例:输入: 2输出: 987解释: 99 x 91 = 9009, 9009 % 1337 = 987说明:class Solution { public int largestPalindrome(int n) { int u...原创 2018-08-23 20:23:36 · 389 阅读 · 0 评论 -
703. Kth Largest Element in a Stream
703. 数据流中的第K大元素题目描述提示帮助提交记录社区讨论阅读解答随机一题设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中的初始元素。每次调用 KthLargest.add,返回当前数据流中第K大的元素。示例:int k...原创 2018-08-23 16:53:46 · 373 阅读 · 0 评论 -
500. Keyboard Row
500. 键盘行题目描述提示帮助提交记录社区讨论阅读解答随机一题给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。 示例1:输入: ["Hello", "Alaska", "Dad", "Peace"]输出: ["Alaska", "Dad"]解题思路:就是设置三个Boolean类型,如果有两个以及 两个以上 为tr原创 2018-08-23 15:52:32 · 106 阅读 · 0 评论 -
532. 数组中的K-diff数对
532. 数组中的K-diff数对给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对。这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k.示例 1:输入: [3, 1, 4, 1, 5], k = 2输出: 2解释: 数组中有两个 2-diff 数对, (1, 3) 和 (3, 5)...原创 2018-08-23 15:21:23 · 232 阅读 · 0 评论 -
463. 岛屿的周长
给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。示例 :...原创 2018-08-23 14:23:20 · 94 阅读 · 0 评论 -
661. 图片平滑器
包含整数的二维矩阵 M 表示一个图片的灰度。你需要设计一个平滑器来让每一个单元的灰度成为平均灰度 (向下舍入) ,平均灰度的计算是周围的8个单元和它本身的值求平均,如果周围的单元格不足八个,则尽可能多的利用它们。示例 1:输入:[[1,1,1], [1,0,1], [1,1,1]]输出:[[0, 0, 0], [0, 0, 0], [0, 0, 0]]解释:对于点 (0...原创 2018-08-23 14:06:16 · 191 阅读 · 0 评论 -
87. 扰乱字符串
给定一个字符串 s1,我们可以把它递归地分割成两个非空子字符串,从而将其表示为二叉树。下图是字符串 s1 = "great" 的一种可能的表示形式。 great / \ gr eat / \ / \g r e at / \ a t在扰乱这个字符串的过程中,我们可以挑选任何一个非叶节点,然...原创 2018-08-27 19:26:17 · 228 阅读 · 0 评论 -
139. 单词拆分
给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可...原创 2018-08-30 16:33:42 · 123 阅读 · 0 评论 -
594. 最长和谐子序列 重写集合比较器
这个不一定要,把map里的数据排序,个人是想练习重写集合比较器,所以把map里数据按自己相要的规则排序了和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1。现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度。示例 1:输入: [1,3,2,2,5,2,3,7]输出: 5原因: 最长的和谐数组是:[3,2,2,2,3].说明: 输入的数...原创 2018-08-24 14:21:22 · 145 阅读 · 0 评论 -
188. 买卖股票的最佳时机 IV
188. 买卖股票的最佳时机 IV题目描述提示帮助提交记录社区讨论阅读解答随机一题给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [2,4,1], k = 2输出: 2解释: 在第 1 天 ...原创 2018-08-28 21:40:10 · 171 阅读 · 0 评论 -
357. 计算各个位数不同的数字个数
给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n 。示例:输入: 2输出: 91 解释: 答案应为除去 11,22,33,44,55,66,77,88,99 外,在 [0,100) 区间内的所有数字。class Solution { public int countNumbersWithUniqueDigits(int n...原创 2018-09-19 19:27:46 · 184 阅读 · 0 评论 -
904. 水果成篮
在一排树中,第 i 棵树产生 tree[i] 型的水果。你可以从你选择的任何树开始,然后重复执行以下步骤:把这棵树上的水果放进你的篮子里。如果你做不到,就停下来。 移动到当前树右侧的下一棵树。如果右边没有树,就停下来。请注意,在选择一颗树后,你没有任何选择:你必须执行步骤 1,然后执行步骤 2,然后返回步骤 1,然后执行步骤 2,依此类推,直至停止。你有两个篮子,每个篮子可以携带任何...原创 2018-09-19 18:33:33 · 329 阅读 · 0 评论 -
354. 俄罗斯套娃信封问题
class Solution { public int maxEnvelopes(int[][] envelopes) { if(envelopes.length==0) return 0; for(int i=1;i<envelopes.length;i++) { int []tem...原创 2018-09-18 19:34:51 · 566 阅读 · 0 评论 -
131. 分割回文串
给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例:输入: "aab"输出:[ ["aa","b"], ["a","a","b"]]题目解析:使用动态规划用数组dp记录字符串,然后递归拼接集合。class Solution { public List<List<Str原创 2018-09-02 16:52:23 · 172 阅读 · 0 评论 -
447. 回旋镖的数量 447. Number of Boomerangs
给定平面上 n 对不同的点,“回旋镖” 是由点表示的元组 (i, j, k) ,其中 i 和 j 之间的距离和 i 和 k 之间的距离相等(需要考虑元组的顺序)。找到所有回旋镖的数量。你可以假设 n 最大为 500,所有点的坐标在闭区间 [-10000, 10000] 中。示例:输入:[[0,0],[1,0],[2,0]]输出:2解释:两个回旋镖为 [[1,0],[0,...原创 2018-08-25 16:31:40 · 247 阅读 · 0 评论 -
113. 路径总和 II
113. 路径总和 II题目描述提示帮助提交记录社区讨论阅读解答随机一题给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 /...原创 2018-08-25 15:44:55 · 200 阅读 · 0 评论 -
437. 路径总和 III
437. 路径总和 III 给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2...原创 2018-08-25 15:21:17 · 269 阅读 · 0 评论 -
852. 山脉数组的峰顶索引
随机一题我们把符合下列属性的数组 A 称作山脉:A.length >= 3 存在 0 < i < A.length - 1 使得A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1]给定一个确定为山脉的数组,返回任何满足 A[0] < A[1] <...原创 2018-08-25 14:43:08 · 85 阅读 · 0 评论 -
507. Perfect Number507. 完美数
对于一个 正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为“完美数”。给定一个 正整数 n, 如果他是完美数,返回 True,否则返回 False 示例:输入: 28输出: True解释: 28 = 1 + 2 + 4 + 7 + 14 class Solution { public boolean checkPerfectNumber(int...原创 2018-08-25 14:20:44 · 158 阅读 · 0 评论 -
120. 三角形最小路径和
120. 三角形最小路径和 给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。说明:如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解...原创 2018-08-29 15:42:26 · 270 阅读 · 0 评论 -
746. 使用最小花费爬楼梯
随机一题数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例 1:输入: cost = [10, 15, 20]输出: 15解释: 最...原创 2018-08-24 19:58:12 · 108 阅读 · 0 评论 -
876. Middle of the Linked List
给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。 示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans...原创 2018-08-24 19:41:10 · 113 阅读 · 0 评论 -
617. 合并二叉树
给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:输入: Tree 1 Tree 2 ...原创 2018-08-24 19:33:28 · 114 阅读 · 0 评论 -
475. Heaters
475. 供暖器 冬季已经来临。 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。现在,给出位于一条水平线上的房屋和供暖器的位置,找到可以覆盖所有房屋的最小加热半径。所以,你的输入将会是房屋和供暖器的位置。你将输出供暖器的最小加热半径。说明:给出的房屋和供暖器的数目是非负数且不会超过 25000。 给出的房屋和供暖器的位置均是非负数且不会超过10^9。 只要房屋...原创 2018-08-23 10:07:42 · 115 阅读 · 0 评论 -
64. 最小路径和
给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。class Solution { public int minPathSum(in...原创 2018-08-27 15:13:01 · 95 阅读 · 0 评论 -
62. 不同路径
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不超过 100。示例 1:输入: m = 3, n = 2输出: 3解释:...原创 2018-08-27 14:54:46 · 99 阅读 · 0 评论 -
200. Number of Islands
200. 岛屿的个数题目描述提示帮助提交记录社区讨论阅读解答随机一题给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:1100011000...原创 2018-08-18 20:15:49 · 110 阅读 · 0 评论 -
130. 被围绕的区域
给定一个二维的矩阵,包含 'X' 和 'O'(字母 O)。找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的 'O' 都...原创 2018-08-18 21:48:09 · 523 阅读 · 0 评论 -
258. 各位相加
题目:给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。示例:输入: 38输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。进阶:你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗?第一种:递归class Solution { public int ...原创 2018-08-06 17:17:59 · 133 阅读 · 0 评论 -
559. N叉树的最大深度
给定一个N叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。例如,给定一个 3叉树 : 我们应返回其最大深度,3。/*// Definition for a Node.class Node { public int val; public List<Node> children; public Nod...原创 2018-08-06 16:08:04 · 111 阅读 · 0 评论 -
101. 对称二叉树
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3 ...原创 2018-05-21 20:26:10 · 203 阅读 · 0 评论 -
109. 有序链表转换二叉搜索树
给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 ...原创 2018-08-06 15:52:39 · 183 阅读 · 0 评论 -
485. Max Consecutive Ones
485. 最大连续1的个数题目描述提示帮助提交记录社区讨论阅读解答随机一题给定一个二进制数组, 计算其中最大连续1的个数。示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意:输入的数组只包含 0 和1。 输入数组的长度是正整数,且不超过 10,000。解题思路:可以直接操作数组,然...原创 2018-08-20 09:46:01 · 131 阅读 · 0 评论 -
849. Maximize Distance to Closest Person849. 到最近的人的最大距离
生命不止。规划不止,我越来越喜欢动态规划了在一排座位( seats)中,1 代表有人坐在座位上,0 代表座位上是空的。至少有一个空座位,且至少有一人坐在座位上。亚历克斯希望坐在一个能够使他与离他最近的人之间的距离达到最大化的座位上。返回他到离他最近的人的最大距离。注意:但是要特别处理头和尾,对于中间的空位要考虑两边的人,所以需要空位处以2,而头尾只要考虑一边就可以了,不需要折半...原创 2018-08-20 10:20:21 · 200 阅读 · 0 评论