- 博客(107)
- 收藏
- 关注
原创 华为机考题-牛客网-20200818 Python
第一题:对几个硬盘按照内存大小排序要求对提供的几个不同容量的硬盘从小到大排序输入: 第一行为 硬盘数量,后面每行为 每个硬盘的大小 (单位是M,G,T的组合形势), eg. 3M2G, 1024M, 5G12M, 2T15M输出: 按从小到大的顺序输出 (注意同等大小的硬盘(eg.1024M 和 1G),需要保序输出)举例:31T3M2G2G5M输出:3M2G2G5M1Twhile True: try: comp_li = []
2020-08-18 15:02:15
1903
原创 NLP之jieba分词
对于做NLP (Natural Laugurage Processing,自然语言处理) 的朋友来说,中文的分词工具 "结巴" 分词应该是再熟悉不过了。笔者在相关的工作中也从它受益颇丰,今天就着重介绍一下这个自称"做最好的python中文分词组件" 的jieba分词。简介 如果要处理中文文本,首先要做的第一步就是将它进行拆分处理,但是不像英文文本中有" "空格 这种天然的分隔符,中...
2019-10-29 17:32:53
1197
原创 (Leetcode) 分数到小数 - Python实现
题目:分数到小数给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以字符串形式返回小数。如果小数部分为循环小数,则将循环的部分括在括号内。示例 :输入: numerator = 1, denominator = 2,输出: "0.5"输入: numerator = 2, denominator = 1,输出: "2"输入: numerator = 2,...
2019-10-28 19:03:42
569
原创 (Leetcode) 岛屿数量 - Python实现
题目:岛屿数量给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 :输入: 输出: 111110110101100000000----------------------------------------------------...
2019-10-22 16:22:00
1327
原创 (Leetcode) 单词接龙 - Python实现
题目:单词接龙给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的单词。 你可以假设 beginWo...
2019-10-21 15:15:50
1166
原创 决策树 (Decision Tree)- 机器学习算法
今天来回顾一下一种很古老,又很好理解的机器学习算法--决策树算法,英文名叫Decision Tree。简介决策树是一种基本的分类与回归方法,表明它既可以做分类算法,也可以作为回归算法,同时也特别适合集成学习(比如随机森林)。构建决策树本质上是一个递归的过程。通常是一个递归地选择最有特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类的过程。在分类问题中,它表示基...
2019-10-21 14:37:01
2841
原创 过拟合(Over-fitting) 和 欠拟合(Under-fitting)
初学机器学习和深度学习的时候,我们常常会遇到 "过拟合" 和 ''欠拟合" 这两个看似不明所以的数学概念,今天我就专门讲一讲它们具体是怎么一回事。拟合(fitting)要理解过拟合和欠拟合,我们首先要明白什么是 "拟合"。通俗来讲,当我们想要了解平面中样本点所具有的统一规律时,或者说通过一条怎样的光滑曲线可以更贴切地描述黄色样本点时,拟合就是我们要使用的手段或方法。如上面中间图所示,我...
2019-10-18 11:00:42
2347
原创 (Leetcode) 矩阵中的最长递增路径 - Python实现
题目:零钱兑换给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 :输入: coins = [1, 2, 5], amount = 11,输出: 3解释: 11 = 5 + 5 + 1输入: coins = [2], amount = 3,输出: -1说明:你可以认为每...
2019-10-17 20:09:34
1137
原创 (Leetcode) 位1的个数 - Python实现
题目:零钱兑换给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 :输入: coins = [1, 2, 5], amount = 11,输出: 3解释: 11 = 5 + 5 + 1输入: coins = [2], amount = 3,输出: -1说明:你可以认为...
2019-10-16 13:43:08
135
原创 (Leetcode) 最长上升子序列 - Python实现
题目:最长上升子序列给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18],输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗?...
2019-10-16 10:34:11
871
原创 (Leetcode) 完全平方数 - Python实现
题目:完全平方数给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例:输入: n = 12,输出: 3解释: 12 = 4 + 4 + 4.输入: n = 13,输出: 2解释: 13 = 4 + 9.----------------------------------------------...
2019-10-14 17:40:24
1098
原创 (Leetcode) 最长连续序列 - Python实现
题目:最长连续序列给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2],输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。---------------------------------------------------------------------------...
2019-10-12 17:59:18
2287
原创 (Leetcode) 二叉树中的最大路径和 - Python实现
题目:二叉树中的最大路径和给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。-----------------------------------------------------------------------------------------------解法1#:创建递归函数,实...
2019-10-12 11:56:47
811
原创 交叉验证(Cross-Validation)
今天我们就来详细了解一下 "交叉验证" 这个概念!首先来看一下,什么是交叉验证?交叉验证,是我们在学习机器学习建模中经常能遇到的一种方法。顾名思义,它就是通过"交叉" (将原始数据拆分成多种不同数据组合)的方式对模型对象进行 "验证" (精确度评估:损失函数,方差,偏差)的处理工具。交叉验证(Cross-validation)主要用于建模应用中,例如PCR 、PLS 回归建模中。在给...
2019-10-11 11:23:26
13365
原创 (Leetcode) 至少有K个重复字符的最长子串- Python实现
题目:至少有K个重复字符的最长子串找到给定字符串(由小写字符组成)中的最长子串 T , 要求 T 中的每一字符出现次数都不少于 k 。输出 T 的长度。示例 :输入:s = "aaabb", k = 3,输出:3最长子串为 "aaa" ,其中 'a' 重复了 3 次。输入: s = "ababbc", k = 2,输出: 5最长子串为 "ababb" ,其中 'a' 重复了 2 次, '...
2019-10-10 15:09:21
548
原创 (Leetcode) 打家劫舍 - Python实现
题目:打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例:输入: [1,2,3,1],输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷...
2019-10-09 13:09:17
137
原创 (Leetcode) 计算右侧小于当前元素的个数 - Python实现
题目:计算右侧小于当前元素的个数给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。示例:输入: [5,2,6,1],输出: [2,1,1,0]解释:5 的右侧有 2 个更小的元素 (2 和 1).2 的右侧仅有 1 个更小的元素 (1).6 的右侧有 1...
2019-10-08 16:51:19
314
原创 (Leetcode) 寻找重复数 - Python实现
题目:寻找重复数给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例:输入: [1,3,4,2,2],输出: 2输入: [3,1,3,4,2],输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O(n2) 。数组...
2019-09-30 10:38:09
230
原创 (Leetcode) 寻找峰值 - Python实现
题目:寻找峰值峰值元素是指其值大于左右相邻值的元素。给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。示例:输入: nums = [1,2,3,1],输出: 2解释: 3 是峰值元素,你的函数应该返回其索引 2。...
2019-09-29 11:11:58
3313
1
原创 (Leetcode) 摆动排序 II - Python实现
题目:摆动排序 II给定一个无序的数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序。示例 :输入: nums = [1, 5, 1, 1, 6, 4],输出: 一个可能的答案是 [1, 4, 1, 5, 1, 6]输入: nums = [1, 3, 2, 2, 3, 1],输出: 一个可能的答案是 [2...
2019-09-27 15:49:50
250
原创 (Leetcode) 最大数- Python实现
题目:最大数给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。示例 :输入: [10,2],输出: 210输入: [3,30,34,5,9],输出: 9534330说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。---------------------------------------------------------------------------...
2019-09-26 11:36:07
1239
原创 (Leetcode) 常数时间插入、删除和获取随机元素 - Python实现
题目:常数时间插入、删除和获取随机元素设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作的数据结构。insert(val):当元素 val 不存在时,向集合中插入该项。remove(val):元素 val 存在时,从集合中移除该项。getRandom:随机返回现有集合中的一项。每个元素应该有相同的概率被返回。示例 :// 初始化一个空的集合。RandomizedSet rand...
2019-09-25 16:35:26
313
原创 (Leetcode) 四数相加 II- Python实现
题目:四数相加 II给定四个包含整数的数组列表 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...
2019-09-24 19:17:53
318
原创 (Leetcode) Excel表列序号 - Python实现
题目:Excel表列序号给定一个Excel表格中的列名称,返回其相应的列序号。例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ZY -> 701 AAA -> 703-----------------------...
2019-09-23 18:32:38
438
原创 (Leetcode) 逆波兰表达式求值 - Python实现
题目:逆波兰表达式求值根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 :输入: ["10", "6", "9", "3", "+", "-11", "*", "/", "*", "17"...
2019-09-20 15:19:57
287
原创 (Leetcode) 扁平化嵌套列表迭代器 - Python实现
题目:扁平化嵌套列表迭代器给定一个嵌套的整型列表。设计一个迭代器,使其能够遍历这个整型列表中的所有整数。列表中的项或者为一个整数,或者是另一个列表。示例:输入: [[1,1],2,[1,1]],输出: [1,1,2,1,1]解释: 通过重复调用 next 直到 hasNext 返回false,next 返回的元素的顺序应该是: [1,1,2,1,1]。输入: [1,[4,[6]]],输出...
2019-09-19 11:59:34
440
原创 (Leetcode) 基本计算器 II - Python实现
题目:基本计算器 II实现一个基本的计算器来计算一个简单的字符串表达式的值。字符串表达式仅包含非负整数,+, - ,*,/ 四种运算符和空格 。 整数除法仅保留整数部分。示例 :输入: "3+2*2",输出: 7输入: " 3/2 ",输出: 1输入: " 3+5 / 2 ",输出: 5说明:你可以假设所给定的表达式都是有效的。请不要使用内置的库函数 eval。--------...
2019-09-18 14:28:39
712
原创 (Leetcode) 滑动窗口最大值 - Python实现
题目:滑动窗口最大值给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3。输出: [3,3,5,5,6,7]解释:滑动窗口的位置 最大值---------------...
2019-09-17 11:18:57
1158
原创 (Leetcode) 前 K 个高频元素 - Python实现
题目:前 K 个高频元素给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例:输入: nums = [1,1,1,2,2,3], k = 2。输出: [1,2]输入: nums = [1], k = 1。输出: [1]说明:你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。...
2019-09-16 11:21:03
838
2
原创 (Leetcode) 有序矩阵中第K小的元素 - Python实现
题目:有序矩阵中第K小的元素给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。请注意,它是排序后的第k小元素,而不是第k个元素。示例:matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15]],k = 8, 返回 13。说明:你可以假设 k 的值永远是有效的, 1 ≤ k ≤ n2 。...
2019-09-11 10:40:03
415
原创 (Leetcode) 数据流的中位数 - Python实现
题目:数据流的中位数中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。例如,[2,3,4] 的中位数是 3, [2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整数到数据结构中。double findMedian() - 返回目前所有元素的中位数。示例:...
2019-09-06 10:20:07
307
1
原创 (Leetcode) 数组中的第K个最大元素 - Python实现
题目:数组中的第K个最大元素在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 :输入: [3,2,1,5,6,4] 和 k = 2,输出: 5输入: [3,2,3,1,2,4,5,5,6] 和 k = 4,输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。-------------...
2019-09-05 10:15:43
501
原创 (Leetcode) 除自身以外数组的乘积 - Python实现
题目:除自身以外数组的乘积给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4],输出: [24,12,8,6]说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂...
2019-09-04 12:01:01
127
原创 (Leetcode) 递增的三元子序列 - Python实现
题目:递增的三元子序列给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。数学表达式如下:如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ≤ n-1,使得 arr[i] < arr[j] < arr[k] ,返回 true ; 否则返回 false 。说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1) 。示例...
2019-09-03 09:55:36
248
原创 (Leetcode) 求众数- Python实现
题目:求众数给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 :输入: [3,2,3],输出: 3输入: [2,2,1,1,1,2,2],输出: 2-------------------------------------------------------------------...
2019-09-02 09:39:11
159
原创 朴素贝叶斯算法总结
朴素贝叶斯应该是机器学习领域最简单的一种算法,但这只是在数学层面的"简单"。如果要深挖下去,考虑先验概率和后验概率,用的不顺溜的话也特别复杂。为什么说它 "朴素" 呢?因为它有两个先决条件(或限制条件):条件(特征)独立假设:一个特征出现的概率,与其他特征(条件)独立。(真实应用中是不可能独立的) 特征均等假设:每个特征同等重要。(真实应用中是不可能均等的)注:就像最大熵模型一样,...
2019-08-21 17:45:18
1441
原创 聚类算法总结
相比较于分类和回归问题的算法,聚类算法因为是没有目标的(计算机需要自己定义类别),所以准确度就没那么高,大家对它的期待就不太高,但它确实是有用的,一般作为有监督学习的辅助算法存在(有时候作为监督学习中稀疏特征的预处理)。下面我就将自己学到的聚类的相关内容分享一下。----------------------------------------------------------------...
2019-08-19 17:11:17
1784
转载 图数据库简介
(转)越来越火的图数据库究竟是什么mantou叔叔https://www.cnblogs.com/mantoudev/p/10414495.html随着社交、电商、金融、零售、物联网等行业的快速发展,现实社会织起了了一张庞大而复杂的关系网,传统数据库很难处理关系运算。大数据行业需要处理的数据之间的关系随数据量呈几何级数增长,亟需一种支持海量复杂数据关系运算的数据库,图数据库应运而生。...
2019-08-16 10:45:43
303
原创 (Leetcode) 乘积最大子序列 - Python实现
题目:乘积最大子序列给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例 :输入: [2,3,-2,4],输出: 6解释: 子数组 [2,3] 有最大乘积 6。输入: [-2,0,-1],输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。-------------------------------------------...
2019-08-15 11:03:35
626
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人