![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
马恩尼斯
这个作者很懒,什么都没留下…
展开
-
LeetCode 116. 填充同一层的兄弟节点 Python
给定一个二叉树struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。说明:...原创 2018-09-29 22:00:09 · 385 阅读 · 0 评论 -
LeetCode 869. 重新排序得到 2 的幂 Python
从正整数 N 开始,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false。 示例 1:输入:1输出:true示例 2:输入:10输出:false示例 3:输入:16输出:true示例 4:输入:24输出:false示例 5:输入:...原创 2018-09-07 15:10:34 · 633 阅读 · 0 评论 -
LeetCode 728. 自除数 Python
自除数 是指可以被它包含的每一位数除尽的数。例如,128 是一个自除数,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。还有,自除数不允许包含 0 。给定上边界和下边界数字,输出一个列表,列表的元素是边界(含边界)内所有的自除数。示例 1:输入: 上边界left = 1, 下边界right = 22输出: [1, 2, 3, 4, 5,...原创 2018-09-10 14:25:37 · 604 阅读 · 0 评论 -
LeetCode 507. 完美数 Python
对于一个 正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为“完美数”。给定一个 正整数 n, 如果他是完美数,返回 True,否则返回 False 示例:输入: 28输出: True解释: 28 = 1 + 2 + 4 + 7 + 14 注意:输入的数字 n 不会超过 100,000,000. (1e8)import mathclass S...原创 2018-09-10 14:18:56 · 672 阅读 · 0 评论 -
LeetCode 112. 路径总和 Python
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 ...原创 2018-09-12 13:56:10 · 160 阅读 · 0 评论 -
LeetCode 404. 左叶子之和 Python
计算给定二叉树的所有左叶子之和。示例: 3 / \ 9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self....原创 2018-09-12 13:15:04 · 256 阅读 · 0 评论 -
LeetCode 235. 二叉搜索树的最近公共祖先 Python
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5] _______6__...原创 2018-09-12 12:48:02 · 219 阅读 · 0 评论 -
LeetCode 167. 两数之和 II - 输入有序数组 Python
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15],...原创 2018-09-03 12:45:46 · 162 阅读 · 0 评论 -
LeetCode 849. 到最近的人的最大距离 Python
在一排座位( seats)中,1 代表有人坐在座位上,0 代表座位上是空的。至少有一个空座位,且至少有一人坐在座位上。亚历克斯希望坐在一个能够使他与离他最近的人之间的距离达到最大化的座位上。返回他到离他最近的人的最大距离。示例 1:输入:[1,0,0,0,1,0,1]输出:2解释:如果亚历克斯坐在第二个空位(seats[2])上,他到离他最近的人的距离为 2 。如果亚...原创 2018-09-05 15:55:38 · 514 阅读 · 0 评论 -
LeetCode 153. 寻找旋转排序数组中的最小值 Python
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。你可以假设数组中不存在重复元素。示例 1:输入: [3,4,5,1,2]输出: 1示例 2:输入: [4,5,6,7,0,1,2]输出: 0class Solution: def ...原创 2018-09-05 13:00:24 · 565 阅读 · 0 评论 -
LeetCode 21. 合并两个有序链表 Python
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4# Definition for singly-linked list.# class ListNode:# def __init__(se...原创 2018-09-11 14:45:03 · 277 阅读 · 0 评论 -
LeetCode 82. 删除排序链表中的重复元素 II Python
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3# Definition for singly-linked li...原创 2018-09-11 14:30:22 · 362 阅读 · 0 评论 -
LeetCode 701. 二叉搜索树中的插入操作 Python
给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 保证原始二叉搜索树中不存在新值。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。例如, 给定二叉搜索树: 4 / \ 2 7 / \ 1 3和 插入的值: ...原创 2018-09-13 10:18:37 · 620 阅读 · 0 评论 -
LeetCode 144. 二叉树的前序遍历 Python
给定一个二叉树,返回它的 前序 遍历。 示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] # Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# sel...原创 2018-09-13 10:54:29 · 1039 阅读 · 0 评论 -
LeetCode 20. 有效的括号 Python
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false...原创 2018-09-18 15:29:55 · 106 阅读 · 0 评论 -
LeetCode 623 在二叉树中增加一行 Python
给定一个二叉树,根节点为第1层,深度为 1。在其第 d 层追加一行值为 v 的节点。添加规则:给定一个深度值 d (正整数),针对深度为 d-1 层的每一非空节点 N,为 N 创建两个值为 v 的左子树和右子树。将 N 原先的左子树,连接为新节点 v 的左子树;将 N 原先的右子树,连接为新节点 v 的右子树。如果 d 的值为 1,深度 d - 1 不存在,则创建一个新的根节点 v,原...原创 2018-09-29 21:41:26 · 526 阅读 · 0 评论 -
LeetCode 113. 路径总和 II Python
给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ ...原创 2018-10-18 12:25:43 · 397 阅读 · 0 评论 -
LeetCode 155. 最小栈 Python
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.pus...原创 2018-09-27 21:10:03 · 400 阅读 · 0 评论 -
LeetCode 12. 整数转罗马数字 Python
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1...原创 2018-09-21 14:10:45 · 738 阅读 · 0 评论 -
LeetCode 860. 柠檬水找零 Python
在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。示例 1:输入...原创 2018-09-21 10:50:57 · 429 阅读 · 0 评论 -
LeetCode 278. 第一个错误的版本 Python
你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出...原创 2018-09-20 15:01:42 · 214 阅读 · 0 评论 -
LeetCode 35. 搜索插入位置 Python
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 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], ...原创 2018-09-20 14:53:06 · 122 阅读 · 0 评论 -
LeetCode 213. 打家劫舍 II Python
你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [2,3,2]输出: 3解释:...原创 2018-09-20 14:01:10 · 387 阅读 · 0 评论 -
LeetCode 172. 阶乘后的零 Python
给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为 O(log n) 。 class Solution: def trailingZeroes(self, n): ...原创 2018-09-19 14:23:35 · 228 阅读 · 0 评论 -
LeetCode 793. 阶乘函数后K个零 Python
f(x) 是 x! 末尾是0的数量。(回想一下 x! = 1 * 2 * 3 * ... * x,且0! = 1)例如, f(3) = 0 ,因为3! = 6的末尾没有0;而 f(11) = 2 ,因为11!= 39916800末端有2个0。给定 K,找出多少个非负整数x ,有 f(x) = K 的性质。示例 1:输入:K = 0输出:5解释: 0!, 1!, 2!, 3!, an...原创 2018-09-19 14:20:56 · 422 阅读 · 0 评论 -
LeetCode 108. 将有序数组转换为二叉搜索树 Python
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -1...原创 2018-09-23 15:52:01 · 319 阅读 · 0 评论 -
LeetCode 398 随机数索引 Python
给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引。 您可以假设给定的数字一定存在于数组中。注意:数组大小可能非常大。 使用太多额外空间的解决方案将不会通过测试。示例:int[] nums = new int[] {1,2,3,3,3};Solution solution = new Solution(nums);// pick(3) 应该返回索引 2,3 或者 4。每个索引的...原创 2018-06-20 15:22:36 · 969 阅读 · 0 评论 -
LeetCode 122 买卖股票的最佳时机2 Python
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 ...原创 2018-06-20 14:35:59 · 935 阅读 · 2 评论 -
LeetCode 2 两数相加 Python
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807 class Solution: def ad...原创 2018-06-22 14:07:41 · 1405 阅读 · 0 评论 -
LeetCode 105. 从前序与中序遍历序列构造二叉树 Python
根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7 class Solution: def buildTree(self, preorder,...原创 2018-05-31 18:59:11 · 1780 阅读 · 0 评论 -
LeetCode 169. 求众数 Python
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2class Solution(object): def majorityElement(self, nums): res=...原创 2018-05-31 18:15:23 · 1151 阅读 · 2 评论 -
LeetCode 190. 颠倒二进制位 Python
颠倒给定的 32 位无符号整数的二进制位。示例:输入: 43261596输出: 964176192解释: 43261596 的二进制表示形式为 00000010100101000001111010011100 , 返回 964176192,其二进制表示形式为 00111001011110000010100101000000 。进阶:如果多次调用这个函数,你将如何优化你的算法?clas...原创 2018-05-31 18:09:56 · 648 阅读 · 0 评论 -
LeetCode 326. 3的幂 Python
给定一个整数,写一个函数来判断它是否是 3 的幂次方。示例 1:输入: 27输出: true示例 2:输入: 0输出: false示例 3:输入: 9输出: true示例 4:输入: 45输出: false class Solution: def isPowerOfThree(self, n): if n <= 0: return F...原创 2018-06-07 11:38:07 · 859 阅读 · 0 评论 -
LeetCode 231. 2的幂 Python
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: falseclass Solution: def isPowerOfTwo(self, n): z = bin(n)[2:] if(z[0]!='...原创 2018-06-07 11:28:49 · 595 阅读 · 0 评论 -
Leetcode 476. 数字的补数 Python
给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。注意:给定的整数保证在32位带符号整数的范围内。你可以假定二进制数不包含前导零位。示例 1:输入: 5输出: 2解释: 5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。示例 2:输入: 1输出: 0解释: 1的二进制表示为1(没有前导零位),其补数为0。所以你需要输出0。class Solution:...原创 2018-06-07 11:21:51 · 732 阅读 · 3 评论 -
LeetCode 28 实现strStr() Python
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle = "bba"输出...原创 2018-06-21 10:44:28 · 298 阅读 · 0 评论 -
LeetCode 392. 判断子序列 Python
给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。示例 1:s = "abc"...原创 2018-05-30 16:34:04 · 2379 阅读 · 0 评论 -
LeetCode 136. 只出现一次的数字 Python
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4class Solution: def singleNumber(self, nums): return ...原创 2018-05-30 16:12:19 · 882 阅读 · 6 评论 -
LeetCode 670. Maximum Swap Python
给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。示例 1 :输入: 2736输出: 7236解释: 交换数字2和数字7。示例 2 :输入: 9973输出: 9973解释: 不需要交换。注意:给定数字的范围是 [0, 108]class Solution: def maximumSwap(self,num): b=list(str(nu...原创 2018-05-30 16:04:15 · 667 阅读 · 0 评论 -
LeetCode 66 加一 Python
给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。 class Solu...原创 2018-06-22 14:26:35 · 290 阅读 · 0 评论