- 博客(41)
- 收藏
- 关注
原创 python 获取本机ip
import socketdef get_host_ip(): try: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(('8.8.8.8', 80)) ip = s.getsockname()[0] finally: s.close...
2019-07-30 09:40:43
475
原创 总结——常用的正则表达式
把开发中比较常用的正则表达式总结一下,以后需要的时候,可以直接查表。一、校验数字的表达式1 数字:^[0-9]*$2 n位的数字:^\d{n}$3 至少n位的数字:^\d{n,}$4 m-n位的数字:^\d{m,n}$5 零和非零开头的数字:^(0|[1-9][0-9]*)$6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7 带1-2位小数...
2018-06-08 09:51:06
197
原创 python刷题日记:剑指offer-栈的压入、弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解题思路: 借用一个辅助的栈,遍历压栈顺序,先讲第一个放入栈中,这里是1,然后判断栈顶元...
2018-05-25 19:00:24
951
转载 逻辑斯蒂回归VS决策树VS随机森林VS支持向量机
LR 与SVM不同1.logistic regression适合需要得到一个分类概率的场景,SVM则没有分类概率2.LR其实同样可以使用kernel,但是LR没有support vector在计算复杂度上会高出很多。如果样本量很大并且需要的是一个复杂模型,那么建议SVM3. 如果样本比较少,模型又比较复杂。那么建议svm,它有一套比较好的解构风险最小化理论的保障
2018-04-18 15:54:54
8136
1
原创 python刷题日记:剑指offer-重建二叉树(附中序与后序)
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思路从前序第一个元素中可以找到根节点,并根据根节点在中序中找到左右子树,并一次递归子树寻找。(pop这个方法很好用,我在网上看来的)
2018-04-11 13:41:10
314
原创 python刷题日记:剑指offer-反转链表
题目描述输入一个链表,反转链表后,输出链表的所有元素。解题思路倒序输出,用一个新链表,通过尾插法插入即可。代码# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solutio
2018-04-03 23:29:52
231
原创 python刷题日记:剑指offer-合并两个排序的链表
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解题思路这题不难吧,直接给一个新链表,通过头插法插入即可,当一个链表都加入完毕后,注意要把另一个链表的剩余值导入新链表内。ps:该代码中一定需要pHead间接赋值,然后把头结点去掉代码# -*- coding:utf-8 -*-# class ListNode:#
2018-04-03 23:27:59
222
原创 python刷题日记:剑指offer-链表中倒数第k个结点
题目描述输入一个链表,输出该链表中倒数第k个结点。解题思路这题和之前倒序打印链表同理,这里就不多说了.不过这里求的是结点,不是val。这点要注意,不要把val赋给list了代码# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next...
2018-04-02 23:36:32
166
原创 python刷题日记:剑指offer-调整数组顺序使奇数位于偶数前面
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解题思路传统方法应该是给两个一前一后指针,遇到前偶数与后奇数时,就交换。然而我发现一个更简便的方法,就是给两个列表,奇偶分开放,最后连起来代码# -*- coding:utf-8 -*-clas
2018-04-02 23:00:02
379
1
原创 python刷题日记:剑指offer-数值的整数次方
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。解题思路这题还没有摸清到底想考察什么,虽然解出来很容易 。——————继续理解中代码# -*- coding:utf-8 -*-class Solution: def Power(self, base, exponent): # w
2018-04-01 22:54:38
175
原创 python刷题日记:剑指offer-二进制中1的个数
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解题思路这道题我想了半天,没成功,最后找大神了解,发现有技巧。一。首先要判断n正负,若为负,向左移位时最高位加1。因此可以把最高位的1改为0,通过n & 0x7FFFFFFF修改,这样负数就改为正数了,除了最高位的1变为了0.二。如果一个整数不为0,那么这个整数至少有一位是1。如果我
2018-04-01 04:03:10
173
原创 python刷题日记:剑指offer-变态跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解题思路这道题其实用一下数学归纳法就可以看出来,是2**(n-1)种。代码# -*- coding:utf-8 -*-class Solution: def jumpFloorII(self, number): # write co
2018-03-31 16:43:45
234
原创 python刷题日记:剑指offer-矩形覆盖
题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?解题思路这道题和上面题跳台阶类似,你列举出前几个状态值后,发现还是斐波那契数列,这里就不多说了。代码# -*- coding:utf-8 -*-class Solution: def rectCover(self, number)
2018-03-31 16:24:15
172
原创 python刷题日记:剑指offer-跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解题思路这道题我一开始还认为应该是类似于求迷宫路径的题,但怎么做都不对,最后还是选择找了点提示,原来列举出前几个值,可以发现,与斐波那契数列是对应的(n=0时,f(0)=1),因此和前面一题:斐波那契数列一样的方法。代码# -*- coding:utf-8 -*-class
2018-03-30 23:14:08
129
原创 python刷题日记:剑指offer-斐波那契数列
题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n解题思路这道题看起来用递归的方法很快可以解决,但是考虑到递归会多次调用函数,导致内存过大,因此我认为更适合使用循环累加。代码# -*- coding:utf-8 -*-class Solution: def Fibonacci(s
2018-03-30 22:51:37
170
原创 python刷题日记:剑指offer-旋转数组的最小
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解题思路一开始我以为这道题还需要判断这个输入数组是不是原非递减数组的旋转,所以进行了循环判断,在取
2018-03-29 15:34:23
262
原创 python刷题日记:剑指offer-从尾到头打印链表
题目描述输入一个链表,从尾到头打印链表每个节点的值。解题思路python的优点又体现了,可以利用[-1]进行倒序输出,若使用其他语言,应该需要用到栈递归的方法。代码# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x#
2018-03-29 14:49:14
146
原创 python刷题日记:剑指offer-替换空格
题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思路这道题用python,一句话就出来了...用一个replace函数就能够进行字符的替换。用其他语言的话,我估计是要遍历的。代码:# -*- coding:utf-8 -*-class Solution: # s 源字符串...
2018-03-28 22:29:30
200
原创 python刷题日记:剑指offer-二维数组的查找
题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路:这题肯定不能按顺序暴力破解....想了想发现从右上角或左下角开始搜索最好,这样比较大小时,移动的方向不会有重叠,减小循环量(若其中有值的话),后来看了大神们的代码,感觉还是需要有所简化。我的代码:# -*- codi...
2018-03-28 21:57:08
214
原创 xgb模型的参数,归一化
这里要重点讲一下 Xgboost 的调参。通常认为对它性能影响较大的参数有:eta:每次迭代完成后更新权重时的步长。越小训练越慢。num_round:总共迭代的次数。subsample:训练每棵树时用来训练的数据占全部的比例。用于防止 Overfitting。colsample_bytree:训练每棵树时用来训练的特征的比例,类似 RandomF
2018-01-28 18:22:21
5019
转载 python_pandas中的get_dummies使用
虚拟变量(dummy variables)虚拟变量,也叫哑变量和离散特征编码,可用来表示分类变量、非数量因素可能产生的影响。离散特征的编码分为两种情况:1、离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one-hot编码2、离散特征的取值有大小的意义,比如size:[X,XL,XXL],那么就使用数值的映射{X:1,XL:2,XX
2018-01-28 16:52:34
7232
原创 随机森林(RF)与GBDT的参数比较
RandomForest随机森林随机森林和GBDT的区别:随机森林采用的bagging思想,而GBDT采用的boosting思想。这两种方法都是Bootstrap思想的应用,Bootstrap是一种有放回的抽样方法思想。虽然都是有放回的抽样,但二者的区别在于:Bagging采用有放回的均匀取样,而Boosting根据错误率来取样(Boosting初始化时对每一个训练样例赋相等的权重1/n,然后用该...
2018-01-24 11:06:55
3689
原创 python_主成分分析(PCA)降维
主成分分析(principal component analysis)是一种常见的数据降维方法,其目的是在“信息”损失较小的前提下,将高维的数据转换到低维,从而减小计算量。 PCA的本质就是找一些投影方向,使得数据在这些投影方向上的方差最大,而且这些投影方向是相互正交的。这其实就是找新的正交基的过程,计算原始数据在这些正交基上投影的方差,方差越大,就说明在对应正交基上包含了更多的信息量。
2018-01-22 10:14:37
23961
原创 面向对象中重写与重载区别
自己对于重写(override)与重载(overload)的小理解。一、重写(override)override是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类中的方法。重写(覆盖)的规则: 1、重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载。 2、重写方法的访问
2018-01-11 21:11:30
556
原创 pandas库中drop_duplicates的小问题
下面我来解释一下,关于.drop_duplicates()括号中inplace的问题。drop_duplicates(inplace=True)是直接对原dataFrame进行操作。而drop_duplicates(inplace=False)是重新创建一个新的DataFrame并进行删除,对原DataFrame不进行改变。如:d.drop_duplicates(inplace=Tru
2017-12-27 09:46:31
2289
原创 python_pandas库
一、 创建对象可以通过 Data Structure Intro Setion 来查看有关该节内容的详细信息。1、可以通过传递一个list对象来创建一个Series,pandas会默认创建整型索引:2、通过传递一个numpy array,时间索引以及列标签来创建一个DataFrame:3、通过传递一个能够被转换成类似序列结构的字典对象来创建一个Data
2017-12-27 09:39:22
510
原创 python——pandas库
对于数据挖掘与分析,我们可以使用Numpy,Matplotlib以及更强大的Pandas。而Scipy(会在接下来的帖子中提及)当然是另一个主要的也十分出色的科学计算库,但是我认为前三者才是真正的Python科学计算的支柱。所以,不需要太多精力,让我们马上开始Python科学计算系列的第三帖——Pandas。如果你还没有查看其他帖子,不要忘了去看一下哦!导入Pandas我们
2017-12-22 14:56:30
585
原创 Python——dict
1、dict 特性dict用花括号{}表示,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略。①、dict 的查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。 dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查
2017-12-08 17:39:37
532
原创 VHDL总结
一个VHDL程序代码包含实体(entity)、结构体(architecture)、配置(configuration)、程序包(package)、库(library)等。 一、 数据类型1.用户自定义数据类型使用关键字TYPE,例如:TYPE my_integer IS RANGE -32 TO 32;–用户自定义的整数类型的子集
2017-11-20 15:48:33
1586
转载 机器学习算法——马尔可夫链蒙特卡罗(MCMC)
什么是MCMC,什么时候使用它MCMC只是一种从分布中抽样的算法。这个术语代表“马尔可夫链蒙特卡罗”,因为它是一种使用了“马尔可夫链”的“蒙特卡罗”(即随机)方法。MCMC只是一种蒙特卡罗方法。为什么我要从分布抽样呢?从分布抽样是解决一些问题的最简单的方法。也许在贝叶斯推断中最常见的方式是使用MCMC来从某些模型的后验概率分布中抽取样本。有了这些示例,你就可以问这样
2017-11-01 14:24:17
3860
转载 转:对LS,MMSE,LMMSE,ML,MAP,LMS,AR,MSE误差等算法进行一次清楚的比较
谈谈我的理解,不当之处欢迎大家指正:这一系列算法都可以是基于接收数据来对目标数据进行估计,1。LS用于接收到的数据块长度一定,并且数据、噪声(干扰)的统计特性未知或者非平稳的情况,其优化目标是使得基于该数据块的估计与目标数据块间加权的欧几里德距离最小,当有多个数据块可用时,可用其递归算法RLS减小计算量;2。MMSE的优化目标是为了使基于接收数据的估计值和目标数据的均方误差最小
2017-10-13 09:17:21
4600
原创 2018网易校招编程题(8)小易喜欢的数列
小易非常喜欢拥有以下性质的数列: 1、数列的长度为n 2、数列中的每个数都在1到k之间(包括1和k) 3、对于位置相邻的两个数A和B(A在B前),都满足(A <= B)或(A mod B != 0)(满足其一即可) 例如,当n = 4, k = 7 那么{1,7,7,2},它的长度是4,所有数字也在1到7范围内,并且满足第三条性质,所以小易是喜欢这个数列的 但是小易不喜欢{4,4,4,2
2017-08-22 16:30:33
1405
原创 2018网易校招编程题(7)疯狂队列
小易老师是非常严厉的,它会要求所有学生在进入教室前都排成一列,并且他要求学生按照身高不递减的顺序排列。有一次,n个学生在列队的时候,小易老师正好去卫生间了。学生们终于有机会反击了,于是学生们决定来一次疯狂的队列,他们定义一个队列的疯狂值为每对相邻排列学生身高差的绝对值总和。由于按照身高顺序排列的队列的疯狂值是最小的,他们当然决定按照疯狂值最大的顺序来进行列队。现在给出n个学生的身高,请计算出这些学生
2017-08-22 14:46:20
1354
1
原创 2018网易校招编程题(6)堆棋子
小易将n个棋子摆放在一张无限大的棋盘上。第i个棋子放在第x[i]行y[i]列。同一个格子允许放置多个棋子。每一次操作小易可以把一个棋子拿起并将其移动到原格子的上、下、左、右的任意一个格子中。小易想知道要让棋盘上出现有一个格子中至少有i(1 ≤ i ≤ n)个棋子所需要的最少操作次数.输入描述: 输入包括三行,第一行一个整数n(1 ≤ n ≤ 50),表示棋子的个数 第二行为n个棋子的横坐标x[i
2017-08-22 11:17:47
2862
原创 2018网易校招编程题(5)独立的小易
小易为了向他的父母表现他已经长大独立了,他决定搬出去自己居住一段时间。一个人生活增加了许多花费: 小易每天必须吃一个水果并且需要每天支付x元的房屋租金。当前小易手中已经有f个水果和d元钱,小易也能去商店购买一些水果,商店每个水果售卖p元。小易为了表现他独立生活的能力,希望能独立生活的时间越长越好,小易希望你来帮他计算一下他最多能独立生活多少天。 输入描述: 输入包括一行,四个整数x, f, d
2017-08-22 10:56:27
1003
原创 2018网易校招编程题(4)操作序列
小易有一个长度为n的整数序列,a_1,…,a_n。然后考虑在一个空序列b上进行n次以下操作: 1、将a_i放入b序列的末尾 2、逆置b序列 小易需要你计算输出操作n次之后的b序列。 输入描述: 输入包括两行,第一行包括一个整数n(2 ≤ n ≤ 2*10^5),即序列的长度。 第二行包括n个整数a_i(1 ≤ a_i ≤ 10^9),即序列a中的每个整数,以空格分割。输出描述: 在一
2017-08-22 10:28:32
1107
原创 2018网易校招编程题(3)交错01串
如果一个01串任意两个相邻位置的字符都是不一样的,我们就叫这个01串为交错01串。例如: “1”,”10101”,”0101010”都是交错01串。 小易现在有一个01串s,小易想找出一个最长的连续子串,并且这个子串是一个交错01串。小易需要你帮帮忙求出最长的这样的子串的长度是多少。 输入描述: 输入包括字符串s,s的长度length(1 ≤ length ≤ 50),字符串中只包含’0’和
2017-08-21 23:20:26
1957
原创 2018网易校招编程题(2) 等差数列
如果一个数列S满足对于所有的合法的i,都有S[i + 1] = S[i] + d, 这里的d也可以是负数和零,我们就称数列S为等差数列。 小易现在有一个长度为n的数列x,小易想把x变为一个等差数列。小易允许在数列上做交换任意两个位置的数值的操作,并且交换操作允许交换多次。但是有些数列通过交换还是不能变成等差数列,小易需要判别一个数列是否能通过交换操作变成等差数列 输入描述: 输入包括两行,第
2017-08-21 19:09:26
1218
原创 2018网易校招编程题(1)彩色的砖块
小易有一些彩色的砖块。每种颜色由一个大写字母表示。各个颜色砖块看起来都完全一样。现在有一个给定的字符串s,s中每个字符代表小易的某个砖块的颜色。小易想把他所有的砖块排成一行。如果最多存在一对不同颜色的相邻砖块,那么这行砖块就很漂亮的。请你帮助小易计算有多少种方式将他所有砖块排成漂亮的一行。(如果两种方式所对应的砖块颜色序列是相同的,那么认为这两种方式是一样的。) 例如: s = “ABAB”,那么
2017-08-21 18:53:34
1398
转载 Java内部类的使用小结
内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。*内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default)。 注意:内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。对于一个名为outer的外部类和其内部定义的名为inn
2017-08-16 18:26:36
851
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人