力扣(LeetCode)221

2019-02-22
阅读 1 分钟
1.8k
题目地址:[链接]题目描述:在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 示例: 输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0 输出: 4解答:这一题使用动态规划算法。dpi表示以点(i,j)为右下角点的最大正方形的边长,那么就有若matrixi = '0',dpi = 0,否则dpi = 1+min(dpi-1,min(dpi-...

力扣(LeetCode)22

2019-02-22
阅读 2 分钟
2.4k
[ "((()))", "(()())", "(())()", "()(())", "()()()"]解答:这一题可以用递归来做,若现在有n-1对的有效括号组合,求第n对的有序括号组合,只需要在n-1对的组成中不断添加"()"就可以保证生成有效的括号组合,不过这样可能会重复,因此再使用一个hash表来去重。java ac代码:

力扣(LeetCode)21

2019-02-20
阅读 1 分钟
2.1k
题目地址:[链接]题目描述:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 解答:递归思想。若两者其中有一个为null就返回另一个。否则,val值小的链表作为头,然后它的next指向它的下一个节点和另一个有序链表的合并。java ac代码:

力扣(LeetCode)46

2019-02-20
阅读 1 分钟
6k
输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]解答:利用递归,我们可以认为,求一个数组的全排列,就是把这个数组中的每个位置的元素分别放在数组头部然后求剩余元素的全排列,递归边界是剩余元素数量为1,也就是说当数组中只剩一个元素的时候,它的全排列就是它本身。java ac代码:

力扣(LeetCode)72

2019-02-16
阅读 2 分钟
1.9k
解答:这一题用动态规划,dpi表示word1中0到i的字符所组成的字符串到word2中0到j的字符所组成的字符串的编辑距离。那么答案则为dpword1.length那么如何求dpi呢?也就是转移方程。由定义可以知道空字符串变成任意长度字符串的代价为该字符串的长度,也就是说dp0 = j+1,dpi = i+1。这里的i,j最大分别为word1和word2的长度...

力扣(LeetCode)417

2019-02-16
阅读 3 分钟
1.6k
题目地址:[链接]题目描述:给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度。“太平洋”处于大陆的左边界和上边界,而“大西洋”处于大陆的右边界和下边界。

力扣(LeetCode)965

2019-02-15
阅读 1 分钟
1.8k
题目地址:[链接]题目描述:如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。

力扣(LeetCode)103

2019-01-17
阅读 2 分钟
2.5k
题目地址:[链接]题目描述:给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。

力扣(LeetCode)863

2019-01-17
阅读 2 分钟
2.9k
解答:这一题显然是利用广度优先搜索来探测距离,然而树是一个有向图,我们需要一个无向图来进行广度优先搜索。因此,先把树变成一个无向图,然后广度优先搜索这个无向图。距离不断增加,就可以找到每个节点和目标节点的距离。java ac代码:

leetcode690

2019-01-17
阅读 2 分钟
1.7k
比如,员工1是员工2的领导,员工2是员工3的领导。他们相应的重要度为15, 10, 5。那么员工1的数据结构是[1, 15, [2]],员工2的数据结构是[2, 10, [3]],员工3的数据结构是[3, 5, []]。注意虽然员工3也是员工1的一个下属,但是由于并不是直系下属,因此没有体现在员工1的数据结构中。

力扣(LeetCode)796

2019-01-16
阅读 1 分钟
1.5k
A 的旋转操作就是将 A 最左边的字符移动到最右边。 例如, 若 A = 'abcde',在移动一次之后结果就是'bcdea' 。如果在若干次旋转操作之后,A 能变成B,那么返回True。

力扣(LeetCode)263

2019-01-15
阅读 1 分钟
2.2k
题目地址:[链接]题目描述:编写一个程序判断给定的数是否为丑数。 丑数就是只包含质因数 2, 3, 5 的正整数。 示例 1: 输入: 6输出: true解释: 6 = 2 × 3示例 2: 输入: 8输出: true解释: 8 = 2 × 2 × 2示例 3: 输入: 14输出: false 解释: 14 不是丑数,因为它包含了另外一个质因数 7。说明: 1 是丑数。输入不会超过 32 ...

力扣(LeetCode)142

2019-01-15
阅读 2 分钟
2.6k
为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。

力扣(LeetCode)141

2019-01-15
阅读 1 分钟
1.6k
为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。

力扣(LeetCode)662

2019-01-15
阅读 3 分钟
2.4k
题目地址:[链接]题目描述:给定一个二叉树,编写一个函数来获取这个树的最大宽度。树的宽度是所有层中的最大宽度。这个二叉树与满二叉树(full binary tree)结构相同,但一些节点为空。

力扣(LeetCode)609

2019-01-14
阅读 2 分钟
2k
题目地址:[链接]题目描述:给定一个目录信息列表,包括目录路径,以及该目录中的所有包含内容的文件,您需要找到文件系统中的所有重复文件组的路径。一组重复的文件至少包括二个具有完全相同内容的文件。

力扣(LeetCode)652

2019-01-14
阅读 2 分钟
2.1k
题目地址:[链接]题目描述:给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。 两棵树重复是指它们具有相同的结构以及相同的结点值。 示例 1: {代码...} 下面是两个重复的子树: {代码...} 和 {代码...} 因此,你需要以列表的形式返回上述重复子树的根结点。 解答:...

力扣(LeetCode)513

2019-01-14
阅读 1 分钟
1.6k
题目地址:[链接]题目描述:给定一个二叉树,在树的最后一行找到最左边的值。 示例 1: 输入: {代码...} / \ 1 3 输出:1 示例 2: 输入: {代码...} 输出:7 注意: 您可以假设树(即给定的根节点)不为 NULL。 解答:我们只需要层次遍历(从左到右)这个二叉树,并且用每层第一个节点的值替换临时变量。就能得到正确的结果,注...

力扣(LeetCode)448

2019-01-13
阅读 1 分钟
1.8k
题目地址:[链接]题目描述:给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。

力扣(LeetCode)922

2019-01-11
阅读 1 分钟
2k
题目地址:[链接]题目描述:给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。 对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。 你可以返回任何满足上述条件的数组作为答案。 示例: 输入:[4,2,5,7]输出:[4,5,2,7]解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接...

力扣(LeetCode)543

2019-01-10
阅读 2 分钟
2.3k
题目地址:[链接]题目描述:给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。 示例 :给定二叉树 {代码...} 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 注意:两结点之间的路径长度是以它们之间边的数目表示。 解答:这一题就是找到每...

力扣(LeetCode)389

2019-01-10
阅读 1 分钟
2.9k
题目地址:[链接]题目描述:给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例: 输入:s = "abcd"t = "abcde" 输出:e 解释:'e' 是那个被添加的字母。 解答:这一题可以用两种解法。解法一:利用hash表存储第一个字符串的字...

力扣(LeetCode)130

2019-01-05
阅读 2 分钟
2.4k
题目地址:[链接]题目描述:给定一个二维的矩阵,包含 '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 解答:就是找所有被'X'围绕的区域,然后填充是轻而易举的事情。可以这样...

力扣(LeetCode)934

2019-01-02
阅读 2 分钟
3.2k
解答:题的意思就是说,有两片岛屿,岛屿是指联通的1组成的区域,求这两片岛屿之间的最短距离。思路是这样的,用图的深度优先搜索dfs算法,来找出第一个岛屿里的全部点,加入list1,然后同样的方法找到第二个岛屿的全部点,加入list2,然后求list1中任意一点到list2中任意一点距离的最小值即可,这里的距离是指abs(x1-x2...