自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (3)
  • 收藏
  • 关注

原创 Python类中实例方法、类方法及静态方法的调用区别

# usr/bin/env python# _*_ coding:utf-8 _*_'''测试python类中:实例方法,类方法,静态方法及普通方法的调用方法区别结论1. instance创建时包含隐藏参数self,cls.因此调用时对四种method皆可直接调用;2. class创建时包含隐藏参数cls.无self. 因此调用instance_method时需要传入instanc

2017-09-17 09:31:19 4073 2

原创 素数筛实现素数的快速筛选

# usr/bin/env python# _*_ coding:utf-8 _*_'''素数筛(Sieve of primes):给定一个较大值n,寻找1~n中的所有素数,并把它打印出来。判断一个数m是否是素数,需要花费O(√n)时间。当然是遍历并判断的话,需要花费O(n√n)时间,生产者实现也很简单:1. 首先生成一个bool列表表示该index的数是否是素数;2. 显然0

2017-09-13 10:23:37 749

原创 Python 装饰器实现样例

# coding:utf-8'''装饰器实现闭包的应用装饰器和被装饰函数都有参数时,一:需要三层的嵌套第一层传装饰器参数、第二层嵌套传函数、第三层传被装饰函数的参数二:三层返回最里层返回func(*args)拿到参数,外层返回最里层函数,最外层返回次外层'''def dec(isnot = False): print 'call dec' if isnot:

2017-09-12 21:21:21 441

原创 1、Nginx服务器架构初探

主要内容: 1. 模块化结构的相关知识 2. Nginx如何处理web请求 3. Nginx的事件驱动模型 4 .Nginx设计架构的概览一、Nginx的模块化结构 1.1 核心模块:对两类功能的支持 主体功能:包括进程管理,权限控制,错误日志记录,配置解析等; 响应请求功能:包括事件驱动机制,正则表达式解析等; 1.2 标准H

2017-09-08 11:23:23 546

原创 MySQL中的存储引擎的锁机制

锁机制是为了解决数据库的并行性和数据的一致性而产生的,通过为访问的数据加锁,可以使得被访问的数据不被修改,从而保证数据的有效性和一致性。

2017-09-06 11:03:41 866

原创 按输入序列长度为M,按其数据二进制中 ‘1’ 的个数多少,返回前N多的元素

# usr/bin/env python# _*_ coding:utf-8 _*_'''按输入序列长度为M,按其数据二进制中 ‘1’ 的个数多少,返回前N多的元素( 若元素含有的 ‘1’ 个数相同则返回数值较大的那个 )如:525 3 7 1 2返回:7 5'''def getResult(M, N, array): new_array = [] bin_arr

2017-08-30 10:00:59 718

原创 最大矩形面积

# usr/bin/env python# _*_ coding:utf-8 _*_'''给定一组非负整数组成的数组h,代表一组柱状图的高度,其中每个柱子的宽度都为1。 在这组柱状图中找到能组成的最大矩形的面积(如图所示)。 入参h为一个整型数组,代表每个柱子的高度,返回面积的值。输入例子1:6 #个数2 1 5 6 2 3输出例子1:1

2017-08-29 21:09:48 1949

原创 拼凑钱币

# usr/bin/env python# _*_ coding:utf-8 _*_'''给你六种面额 1、5、10、20、50、100 元的纸币,假设每种币值的数量都足够多,编写程序求组成N元(N为0~10000的非负整数)的不同组合的个数。 动态规划:dp[j] = dp[j] + dp[j-coins[i]], 条件是:j>coins[i]'''def GetNum(N)

2017-08-29 21:07:18 1179

原创 连续子数组最大和

# coding:utf-8def getResult(num, array): if not num or not array: return None s_um = array[0] max_sum = array[0] for i in range (1 , len (array)): # 判断贡献情况

2017-08-26 16:22:02 346

原创 二叉树的四种遍历方式 (前序,中序,后序,层序遍历 python实现)

# -*- coding:utf-8 -*-'''操作给定的二叉树,输出二叉树的三种遍历结果前序遍历:根左右 8 6 5 7 10 9 11 第一位是根节点中序遍历:左根右 5 6 7 8 9 10 11 中间一位是根节点后续遍历:左右根 5 7 6 9 10 10 8 最后一位是根节点输入描述:二叉树 8 / \

2017-08-22 16:23:47 636

转载 几种常见的设计模式之 python 实现

转载借鉴于 五岳;十分感谢http://www.cnblogs.com/wuyuegb2312/archive/2013/04/09/3008320.html单例模式的四种写法# coding=utf-8# 单例模式(四种方法)#-*- encoding=utf-8 -*-print '----------------------方法1-----------------

2017-08-18 08:58:52 690

原创 任意进制转换 python实现

# coding:utf-8'''描述:给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数输入: 4 2输出: 100@author:chimuuu'''import mathdef translate(num, base_num): if num < base_num: return str(num) else:

2017-08-16 16:46:26 3289

原创 求N!中0的个数 python实现

# -*- coding:utf-8 -*-'''求N!中0的个数思路:分析: 对N进行质因数分解 N=2^x * 3^y * 5^z...,由于10 = 2*5,所以末尾0的个数只和x与z有关, 每一对2和5相乘可以得到一个10,于是末尾0的个数=min(x,z)。在实际中x是远远大于z的,所以我们只要求出z的值即可。 根据公式 z = N/5 + N/

2017-08-16 16:41:23 1709

原创 检查链表是否为回文 python实现

# -*- coding:utf-8 -*-'''题目描述请编写一个函数,检查链表是否为回文。给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。测试样例:{1,2,3,2,1}返回:true{1,2,3,2,3}返回:false@author chimuuu'''class ListNode: def __init

2017-08-16 16:38:41 1251

原创 求两个字符串的最长公共子串 python实现

# coding:utf-8'''求两个字符串的最长公共子串思想:建立一个二维数组,保存连续位相同与否的状态'''def getNumofCommonSubstr(str1, str2): lstr1 = len(str1) lstr2 = len(str2) record = [[0 for i in range(lstr2+1)] for j in ran

2017-08-16 14:56:18 12011

原创 python中 正则表达式匹配一个反斜杠 ‘\’

# coding:utf-8import rere_str = "\\\\"# reObj = re.compile(restr)test_str = "abc\\cd\\hh"res = re.findall(re_str, test_str)print resfor i in res: print i结果为:['\\', '\\']\\

2017-08-13 19:56:04 1647

原创 剑指offer 之 二进制中1的个数

# -*- coding:utf-8 -*-'''面试10:二进制中1的个数思路1: 将1循环左移分别与n进行按位与运算,可得n每一位的1的个数 运算次数: 为n二进制下的位数思路2: 将n减1,再与n进行与预算,这样会把该整数最右边的一个1变0,也就是消去了一个1 这样的话,有多少个1就进行多少次操作,自然也就得出二进制下1的个数了。 运算

2017-08-10 14:20:08 288

原创 剑指offer 之 字符串的全排列、全组合

# -*- coding:utf-8 -*-'''输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。思路:递归固定第i个元素,向后'''class Solution: def P

2017-08-07 20:00:42 1068

原创 剑指offer 之 二叉搜索树与双向链表

# -*- coding:utf-8 -*-'''面试27:二叉树搜索与双向链表题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。 要求不能创建任何新的结点,只能调整树中结点指针的指向。 '''class TreeNode: def __init__(self, x): self.val = x self.left =

2017-08-07 19:54:42 323

原创 剑指offer 之 二叉搜索树的后序遍历序列

# coding:utf-8'''面试24:二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。 如果是则输出true,否则输出false。假设输入的数组的任意两个数字都互不相同。'''class Solution: def VerifySquenceOfBST(self, sequence): # write c

2017-08-01 14:51:32 372

原创 剑指offer 之 栈的压入、弹出序列是否对应

# -*- coding:utf-8 -*-'''面试22:输入的两个整数序列、第一个表示栈的压入顺序,判断第二个序列是不是该栈的弹出序列基本思路: (1).建立一个辅助栈,把push序列的数字依次压入辅助栈, (2).每次压入后,比较辅助栈的栈顶元素和pop序列的首元素是否相等, 相等的话, 就继续比较pop序列的下一元素和辅助栈的栈顶元素, (3).若最后辅助

2017-08-01 14:42:43 325

原创 剑指offer 之 包含min函数的栈

# -*- coding:utf-8 -*-'''面试21:包含min函数的栈题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 '''class Solution: def __init__(self): self.stack = [] self.stack_min = [] def push(self

2017-07-30 21:10:16 247

原创 剑指offer 之 顺时针打印矩阵

# -*- coding:utf-8 -*-'''面试20输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:[[ 1, 2, 3, 4], [ 5, 6, 7, 8], [ 9, 10, 11, 12], [13, 14, 15, 16]]则依次打印出数字 1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,1

2017-07-30 21:00:17 584

原创 Whooshalchemyplus 加 jieba 实现flask支持中文全文搜索

首先flask支持全文搜索的模块目前用的比较多的只有whooshalchemy以及whooshalchemyplus两个,不过都仅仅支持英文全文搜索,中文的话需要先进行分词处理,然后才能够使用whooshalchemyplus搜到,而中文分词在pyhton中莫过于jieba(做最好的 Python 中文分词组件)。起初,使用flask建站时,一直找不到有效的中文全文搜索方法,网上这方面的资料也

2017-07-30 14:42:36 4086 4

原创 剑指offer 之 二叉树的镜像

# -*- coding:utf-8 -*-'''题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6

2017-07-30 14:29:33 259

原创 剑指offer 之 树的子结构

# coding:utf-8'''面试18题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) '''class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution : def H

2017-07-30 14:26:01 281

原创 剑指offer 之 合并两个排序的链表

# -*- coding:utf-8 -*-'''面试题17:合并两个排序的链表输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。基本思路:递归'''class ListNode: def __init__(self, x): self.val = x self.next = Noneclass

2017-07-30 09:53:00 318

原创 剑指offer 之 反转链表

# -*- coding:utf-8 -*-class ListNode: def __init__(self, x): self.val = x self.next = None from collections import dequeclass Solution: # 返回ListNode def ReverseLis

2017-07-30 09:27:15 373

原创 剑指offer 之 输出链表的倒数第K个结点

# -*- coding:utf-8 -*-'''输入一个链表,输出该链表中倒数第k个结点。''''''如果在只希望一次遍历的情况下, 寻找倒数第k个结点, 可以设置两个指针第一个指针先往前走k-1步, 然后从第k步开始第二个指针指向头结点然后两个指针一起遍历当地一个指针指向尾节点的时候, 第二个指针正好指向倒数第k个结点推广: 寻找中间节点, 两个指针一起, 第一个指针每次走

2017-07-29 10:33:15 425

原创 剑指offer 之 调整数组顺序使奇数位于偶数之前

# coding:utf-8'''输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。'''class Solution: # 初级 相对位置变化 def reOrderArray1(self, array): # write code her

2017-07-29 10:24:09 281

原创 8个常用排序算法 之 python实现

1、冒泡#!/usr/bin/env# coding:utf-8# 排序算法之冒泡排序(稳定排序)# 时间复杂度为 o(n, n^2)# 基本思想是:# 两两比较相邻元素,如果反序则交换,直到没有反序的记录为止class Solution:    def bubble(self, alist):        #        L = len(alist)

2017-07-28 09:25:40 447

原创 剑指offer 之 重建二叉树

# -*- coding:utf-8 -*-'''输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。'''class TreeNode:    def __init__(self,

2017-07-27 20:15:44 343

原创 剑指offer 之 两个栈来实现一个队列

# -*- coding:utf-8 -*-'''面试7:    用两个栈来实现一个队列,完成队列的Push和Pop操作。     思路:压入statck1,而删除的时候先检查stack2顶是否有元素,          有则直接删除,无则把stack1的栈顶依次压入stack2,再删除stack2的栈顶元素    @author : chimuuu'''cla

2017-07-27 19:57:49 414

原创 剑指offer之 替换空格

# -*- coding:utf-8 -*-'''面试4:替换空格'''class Solution:    # s 源字符串    def replaceSpace(self, s):        # write code here        return s.replace(' ', '%20')

2017-07-27 14:45:07 348

原创 剑指offer之 二维数组查找

# -*- coding:UTF-8 -*-# 查找字符是否在一个二维数组中# 思路:从左下角开始查找#        行数:m = len(array) -1#        列数:n = len(array[0])-1class Solution:    # arrary 二维数组    def Find(self, target, array):

2017-07-27 14:36:25 336

原创 微信小程序—智能停车

微信小程序-萌芽停车(Author:chimuuu,CommunicationHeart)停车小程序项目结构图小程序主要功能包括:(1)微信用户一键注册登录 (2)微信扫码停车(3)停车计时计费(带有使用者头像及昵称)(4)微信支付演示(暂无:这需要企业身份申请开通)(5)基于LeanCloud的后台数据管理(6)停车记录查询:停车开

2017-01-09 14:20:50 18476 31

python 垃圾回收的算法与实现

本书中涉及以下两个主题。 1. GC 的算法(算法篇) 2. GC 的实现(实现篇) 在“算法篇”中,我们从众多的GC 算法中严格挑选了一些重要的算法来介绍,包括传 统算法和基本算法,以及稍微难一些的算法。“算法篇”最大的目的是让你了解GC 独特的思 维方式和各算法的特性。 在“实现篇”中,你需要逐步阅读我们选择的语言处理程序的GC 算法。因为我们在“算 法篇”中扎实地学习了理论,所以需要在“实现篇”中检验一下能把理论运用到什么程度。

2017-09-12

图解机器学习

《图解机器学习》用丰富的图示,从最小二乘法出发,对基于最小二乘法实现的各种机器学习算法进行了详细的介绍。第Ⅰ部分介绍了机器学习领域的概况;第Ⅱ部分和第Ⅲ部分分别介绍了各种有监督的回归算法和分类算法;第Ⅳ部分介绍了各种无监督学习算法;第Ⅴ部分介绍了机器学习领域中的新兴算法。书中大部分算法都有相应的MATLAB程序源代码,可以用来进行简单的测试。

2017-09-05

空空如也

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

TA关注的人

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