自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 归并排序

假设当前有n个数字的无序数组A [0..n  -  1]。归并排序应该按排序顺序返回数组A.这个想法是应用分治法,我们首先独立地递归地排序A [0..n / 2  -  1]和A [n / 2..n]。 这是通过在这两个子数组上进行两次归并排序递归调用来完成的。 然后,我们将这两个排序的子阵列合并为一个排序的数组。我们保持两个指数p和q分别等于0和n / 2。 我们还有一个临时数组C [...

2019-02-13 15:32:33 229

原创 随机森林与梯度提升树

提升树模型:提升方法实际采用加法模型(即基函数的线形组合)与前向分步算法。以决策树为基函数的提升方法称为提升树。对分类问题决策树是二叉分类树。提升树模型可以表示为决策树的加法模型:fMx=m=1MT(x;θm),其中T(x;θm)表示决策树;θm为决策树的参数;M为树的个数。提升树算法采用前向分步算法。首先确定初始提升树f0x=0,第m步的模型是fmx=fm-1x+T(x;θm),其中fm...

2018-11-28 18:41:50 2798

原创 决策树与随机森林算法

决策树决策树学习基本算法: 输入:训练集D,属性集A 过程:函数 TreeGenerate(D,A) 1:生成结点 node; 2:if D中样本全属于同一类别C then 3:  将node标记为C类叶结点;return 4:end if 5:if A为空 or D中样本在A上取值相同 then 6:将node标记为叶结点,其类...

2018-11-28 15:57:20 994

原创 LeetCode 113. 路径总和 II Python

给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ ...

2018-10-18 12:25:43 385

原创 LeetCode 116. 填充同一层的兄弟节点 Python

给定一个二叉树struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。说明:...

2018-09-29 22:00:09 384

原创 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 500

原创 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 391

原创 FP-Tree的Python实现

一、问题的背景        给定一组商品购买信息,找到商品购买中频繁出现的商品集。比如说,我们有如下的商品交易信息:市场购物信息 Tip Items 1 Bread, Milk 2 Bread, Diaper, Beer, Egg 3 Milk, Diaper, Beer, Coke 4 Bread, Milk, Diaper, Beer...

2018-09-27 20:53:16 9230 2

原创 哈希树的python实现

一、问题的背景        给定一组商品购买信息,找到商品购买中频繁出现的商品集。比如说,我们有如下的商品交易信息:市场购物信息 Tip Items 1 Bread, Milk 2 Bread, Diaper, Beer, Egg 3 Milk, Diaper, Beer, Coke 4 Bread, Milk, Diaper, Beer...

2018-09-27 17:46:30 3983 2

原创 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 316

原创 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 728

原创 LeetCode 860. 柠檬水找零 Python

在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。示例 1:输入...

2018-09-21 10:50:57 422

原创 LeetCode 278. 第一个错误的版本 Python

你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出...

2018-09-20 15:01:42 209

原创 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 121

原创 LeetCode 213. 打家劫舍 II Python

你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [2,3,2]输出: 3解释:...

2018-09-20 14:01:10 382

原创 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 225

原创 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 399

原创 LeetCode 20. 有效的括号 Python

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false...

2018-09-18 15:29:55 102

原创 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 1029

原创 LeetCode 701. 二叉搜索树中的插入操作 Python

给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 保证原始二叉搜索树中不存在新值。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。例如, 给定二叉搜索树: 4 / \ 2 7 / \ 1 3和 插入的值: ...

2018-09-13 10:18:37 608

原创 LeetCode 112. 路径总和 Python

给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 ...

2018-09-12 13:56:10 156

原创 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 246

原创 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 215

原创 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 273

原创 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 350

原创 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 591

原创 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 645

原创 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 624

原创 LeetCode 849. 到最近的人的最大距离 Python

在一排座位( seats)中,1 代表有人坐在座位上,0 代表座位上是空的。至少有一个空座位,且至少有一人坐在座位上。亚历克斯希望坐在一个能够使他与离他最近的人之间的距离达到最大化的座位上。返回他到离他最近的人的最大距离。示例 1:输入:[1,0,0,0,1,0,1]输出:2解释:如果亚历克斯坐在第二个空位(seats[2])上,他到离他最近的人的距离为 2 。如果亚...

2018-09-05 15:55:38 509

原创 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 556

原创 LeetCode 167. 两数之和 II - 输入有序数组 Python

给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15],...

2018-09-03 12:45:46 158

原创 LeetCode 3. 无重复字符的最长子串 Python

给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串,"pwke" 是 子序列  而不是子串。class Solution(objec

2018-06-26 14:29:07 1021 1

原创 LeetCode 454. 四数相加 II Python

给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过 231 - 1 。例如:输入:A = [ 1, 2]B ...

2018-06-25 13:54:21 724

原创 LeetCode 55. 跳跃游戏 Python

给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度...

2018-06-24 16:38:33 1157

原创 LeetCode 38 报数 Python

报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211 被读作  "one 1"  ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被读作 "one 2",  "one 1" ("一个二&qu

2018-06-22 15:17:10 1124

原创 LeetCode 557. 反转字符串中的单词 III Python

给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc" 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。class Solution: def reverseWords(self, s)...

2018-06-22 15:03:25 2056

原创 LeetCode 541. 反转字符串 II Python

给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。示例:输入: s = "abcdefg", k = 2输出: "bacdfeg"要求:该字符串只包含小写的英文字母。给定字符串的长度和 k 在[1, 10000...

2018-06-22 14:58:53 680

原创 LeetCode 345. 反转字符串中的元音字母 Python

编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:给定 s = "hello", 返回 "holle".示例 2:给定 s = "leetcode", 返回 "leotcede".注意:元音字母不包括 "y".class Solution: def reverseVowels(self, s): vowels = ['a','e','i','o','u',...

2018-06-22 14:47:50 194

原创 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 288

原创 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 1366

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除