
LeetCode
t_wu
这个作者很懒,什么都没留下…
展开
-
242. 有效的字母异位词
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母。 class Solution(object): def i...原创 2018-10-18 00:02:58 · 248 阅读 · 0 评论 -
145. 二叉树的后序遍历
给定一个二叉树,返回它的 后序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1]进阶: 递归算法很简单,你可以通过迭代算法完成吗?#145. 二叉树的后序遍历class Solution(object): #非递归实现后续遍历#准备两个栈 第一个栈先遍历根节点 然后将左子树和右子...原创 2018-10-17 23:57:52 · 234 阅读 · 0 评论 -
144. 二叉树的前序遍历
给定一个二叉树,返回它的 前序 遍历。 示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]进阶: 递归算法很简单,你可以通过迭代算法完成吗?class Solution(object): def preorderTraversal(self, root): """ ...原创 2018-10-17 23:57:41 · 154 阅读 · 0 评论 -
173. 二叉搜索树迭代器
实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。调用 next() 将返回二叉搜索树中的下一个最小的数。注意: next() 和hasNext() 操作的时间复杂度是O(1),并使用 O(h) 内存,其中 h 是树的高度。class BSTIterator(object): def __init__(self, root): """ ...原创 2018-10-17 23:57:28 · 356 阅读 · 0 评论 -
39. 组合总和
给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。 解集不能包含重复的组合。 示例 1:输入: candidates = [2,3,6,7], target = 7,所求解集为...原创 2018-10-17 23:57:15 · 156 阅读 · 0 评论 -
19. 删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?class Solution: def removeN...原创 2018-10-17 23:56:53 · 133 阅读 · 0 评论 -
23. 合并K个排序链表
合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6#偷懒直接复制了以前的堆的代码 所有看上去长了点class PriorityQueue: # ...原创 2018-10-17 23:55:14 · 143 阅读 · 0 评论 -
11. 盛最多水的容器
给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(...原创 2018-10-17 23:53:36 · 357 阅读 · 0 评论 -
141. 环形链表
给定一个链表,判断链表中是否有环。进阶:你能否不使用额外空间解决此题?#一个快指针走两步 一个慢指针走一步 如果相遇就有环 不然没环class Solution: def hasCycle(self, head): """ :type head: ListNode :rtype: bool """ ...原创 2018-10-17 23:52:54 · 94 阅读 · 0 评论 -
142. 环形链表 II
给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。说明:不允许修改给定的链表。进阶:你是否可以不用额外空间解决此题?#快慢指针 如果相遇 快指针回到头节点向前和慢指针一样走一步 它们遇到的节点就是入环节点class Solution(object): def detectCycle(self, head): inde...原创 2018-10-17 23:52:39 · 134 阅读 · 0 评论 -
98. 验证二叉搜索树
给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 3 ...原创 2018-10-17 23:58:08 · 312 阅读 · 0 评论 -
94. 二叉树的中序遍历
给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗? class Stack(object): def __init__(self): self.index=-1 self.arr...原创 2018-10-17 23:58:17 · 130 阅读 · 0 评论 -
543. 二叉树的直径
给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。注意:两结点之间的路径长度是...原创 2018-10-17 23:58:29 · 158 阅读 · 0 评论 -
49. 字母异位词分组
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"],原创 2018-10-18 00:02:50 · 217 阅读 · 0 评论 -
78. 子集
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]#78. 子集class Solution(object): def __in...原创 2018-10-18 00:02:43 · 133 阅读 · 0 评论 -
90. 子集 II
给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: [1,2,2]输出:[ [2], [1], [1,2,2], [2,2], [1,2], []]#90. 子集 IIclass Solution(object): def __init__(self): ...原创 2018-10-18 00:02:34 · 148 阅读 · 0 评论 -
784. 字母大小写全排列
给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。示例:输入: S = "a1b2"输出: ["a1b2", "a1B2", "A1b2", "A1B2"]输入: S = "3z4"输出: ["3z4", "3Z4"]输入: S = "12345"原创 2018-10-17 23:59:33 · 276 阅读 · 0 评论 -
231. 2的幂
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: falseclass Solution(object): def isPowerOfTwo(self, n): """ ...原创 2018-10-17 23:59:25 · 139 阅读 · 0 评论 -
46. 全排列
给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]#46. 全排列class Solution(object): def permute(self, nums): """ ...原创 2018-10-17 23:59:18 · 141 阅读 · 0 评论 -
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 < 10...原创 2018-10-17 23:59:08 · 133 阅读 · 0 评论 -
821. 字符的最短距离
给定一个字符串 S 和一个字符 C。返回一个代表字符串 S 中每个字符到字符串 S 中的字符 C 的最短距离的数组。示例 1:输入: S = "loveleetcode", C = 'e'输出: [3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0]说明:字符串 S 的长度范围为 [1, 10000]。 C 是一个单字符,且保证是字符串 S 里的字符。 ...原创 2018-10-17 23:58:54 · 269 阅读 · 0 评论 -
797. 所有可能的路径
给一个有 n 个结点的有向无环图,找到所有从 0 到 n-1 的路径并输出(不要求按顺序)二维数组的第 i 个数组中的单元都表示有向图中 i 号结点所能到达的下一些结点(译者注:有向图是有方向的,即规定了a→b你就不能从b→a)空就是没有下一个结点了。示例:输入: [[1,2], [3], [3], []] 输出: [[0,1,3],[0,2,3]] 解释: 图是这样的:0---...原创 2018-10-17 23:58:44 · 661 阅读 · 0 评论 -
51. N皇后
n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。示例:输入: 4输出: [ [".Q..", // 解法 1 "...Q...原创 2018-10-17 23:52:29 · 118 阅读 · 0 评论