12 2017 档案
摘要:前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程。虽然准备有限,但分享过程中大家大多带着一种惊叹的表情,原来编辑器可以这样强大,这算是对我多年来使用VIM的最大鼓舞吧。所以分享结束之后,将这篇简短教程整理一下作为我2014年的第一篇Blog。...
阅读全文
摘要:前言市面上的消息队列产品有很多,比如老牌的 ActiveMQ、RabbitMQ ,目前我看最火的 Kafka ,还有 ZeroMQ ,阿里巴巴捐赠给 Apache 的 RocketMQ ,连 redis 这样的 NoSQL 数据库也支持 MQ 功能。总之这块知名的...
阅读全文
摘要:原文出处: liuaiqi627 的博客 python2.x中处理中文,是一件头疼的事情。网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自己总结一篇文章。我也会在以后学习中,不断的修改此篇博客。这里假设读者已有与编码相关的基础知识,本文不再再次介绍...
阅读全文
摘要:摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTr...
阅读全文
摘要:超时函数这个函数的作用在于可以给任意可能会hang住的函数添加超时功能,这个功能在编写外部API调用 、网络爬虫、数据库查询的时候特别有用timeout装饰器的代码如下:import signal,functools #下面会用到的两个库 class TimeoutE...
阅读全文
摘要:https://zhuanlan.zhihu.com/p/22663276?refer=passerhttp://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python...
阅读全文
摘要:编辑器最常见: vim / SublimeText2 / PyCharmVim有兴趣可以看看 k-vim 适合Python/Golang开发本地环境pip/easy_install 包管理virtualenv + virtualenvwrapper 库/版本管理, 环...
阅读全文
摘要:Customizing dockerThe Docker systemd unit can be customized by overriding the unit that ships with the default CoreOS settings. Common...
阅读全文
摘要:1、下载harbor,地址https://github.com/vmware/harbor2、进入harbor-master/Deploy目录,修改harbor.cfg文件,主要修改以下信息 2.1、hostname =10.10.10.10 (这个是harb...
阅读全文
摘要:在Python中,很多对象都是可以通过for语句来直接遍历的,例如list、string、dict等等,这些对象都可以被称为可迭代对象。至于说哪些对象是可以被迭代访问的,就要了解一下迭代器相关的知识了。迭代器迭代器对象要求支持迭代器协议的对象,在Python中,支持迭...
阅读全文
摘要:这一段时间学习了下rabbitmq,在学习的过程中,发现国内关于python采用pika库使用rabbitmq的资料很少,官网有这方面的资料,不过是都英文的。于是笔者结合自己的理解,就这方面内容写了一些示例,总共有七篇笔记,分享出来。笔记依次是循序渐进的,笔记内贴出的...
阅读全文
摘要:SQL查询的事情很简单,但是常常因为很简单的事情而出错。遇到一些比较复杂的查询我们更是忘记了SQL查询的基本语法。本文希望通过简单的总结,把常用的查询方法予以总结,希望能够明确在心。场景:学生信息系统,包括学生信息、教师信息、专业信息和选课信息。--学生信息表IF O...
阅读全文
摘要:rsync是类unix系统下的数据镜像备份工工具,一般linux系统都自带了 [可以确认一下:shell>rpm -qa|grep rsync]服务端:192.168.1.2 同步目录:/home/source客户端:192.168.1.3 同步目录:/home/...
阅读全文
摘要:Python是一种面向对象、直译式计算机程序设计语言。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用縮进来定义语句块。与Scheme、Ruby、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理内...
阅读全文
摘要:12步轻松搞定Python装饰器通过 Python 装饰器实现DRY(不重复代码)原则: http://python.jobbole.com/84151/ 基本上一开始很难搞定python的装饰器,也许因为装饰器确实很难懂。搞定装饰器需要你了解一些函数式编程的概念...
阅读全文
摘要:1. 处理中文时出现的错误'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)" 解决方法"UnicodeDecodeError: 'ascii' codec can...
阅读全文
摘要:1. logging介绍 Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/POST,SMTP,Socket等,甚至可以自己实现具...
阅读全文
摘要:一、概述Python是一门多范式的编程语言,它同时支持过程式、面向对象和函数式的编程范式。因此,在Python中提供了很多符合 函数式编程 风格的特性和工具。以下是对 Python中的函数式编程 的简要总结,关于这一主题更全面的讨论可以参考 Functional Pr...
阅读全文
摘要:在程序中使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是ConfigParser,这里简单的做一些介绍。 ConfigParser解析的配置文件的格式比较象ini...
阅读全文
摘要:一 常用函数os模块os.sep 表示默认的文件路径分隔符,windows为\, linux为/os.walk(spath): 用来遍历目录下的文件和子目录os.listdir(dirname):列出dirname下的目录和文件os.mkdir() : 创建目录os....
阅读全文
摘要:本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例。本文的内容不包括如何编写高效的正则表达式、如何优化正则表达式,这些主题请查看其他教程 1. 正则表达式基础1.1. 简单介绍正则表达式并不是Python...
阅读全文
摘要:Python 有两个内建的模块用于处理命令行参数:一个是 getopt,《Deep in python》一书中也有提到,只能简单处理 命令行参数;另一个是 optparse,它功能强大,而且易于使用,可以方便地生成标准的、符合Unix/Posix 规范的命令行说明。使...
阅读全文
摘要:[来源]:腾讯2013实习生笔试 给定一个数组a[N],我们希望构造数组b [N],其中b[j]=a[0]*a[1]…a[N-1] / a[j],在构造过程中,不允许使用除法:要求O(1)空间复杂度和O(n)的时间复杂度;除遍历计数器与a[N] b[N]外,不可...
阅读全文
摘要:【试题描述】 将二叉搜索树转换为双向链表对于二叉搜索树,可以将其转换为双向链表,其中,节点的左子树指针在链表中指向前一个节点,右子树指针在链表中指向后一个节点。 思路一:采用递归思想,对于二叉搜索树,将左、右子树分别转换为双向链表,左子树转换所得链表的头结点即整个树的...
阅读全文
摘要:【试题描述】: 给定二叉树先序中序,建立二叉树的递归算法 其先序序列的第一个元素为根节点,接下来即为其左子树先序遍历序列,紧跟着是右子树先序遍历序列,固根节点已可从先序序列中分离。在中序序列中找到 确定的根节点,根据中序遍历特性,在巾序序列中,根节点前面的...
阅读全文
摘要:如何准备:Whether you are asked to implement a simple stack / queue, or you are asked to implementa modified version of one, you will have ...
阅读全文
摘要:如何准备Linked list questions are extremely common These can range from simple (delete a node ina linked list) to much more challenging Ei...
阅读全文
摘要:如何准备:Bit manipulation can be a scary thing to many candidates, but it doesn’t need to be! If you’re shaky on bit manipulation, we reco...
阅读全文
摘要:【试题描述】定义一个函数,给定二叉树,给每层生成一个链表We can do a simple level by level traversal of the tree, with a slight modification of the breath-first tr...
阅读全文
摘要:【试题描述】定义一个函数,输入一个有序数组生成最小高度二叉树We will try to create a binary tree such that for each node, the number of nodes in the left subtree and...
阅读全文
摘要:【试题描述】定义一个函数,输入判断一个树是否是另一个对的子树You have two very large binary trees: T1, with millions of nodes, and T2, with hun-dreds of nodes Create...
阅读全文
摘要:【试题描述】定义一个函数,输入一个链表,删除无序链表中重复的节点【参考代码】方法一:Without a buffer, we can iterate with two pointers: “current” does a normal iteration, while...
阅读全文
摘要:【试题描述】定义一个函数,输入一个链表,判断链表是否存在环路平衡二叉树,又称AVL树。它或者是一棵空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的高度之差之差的绝对值不超过1。问题:判断一个二叉排序树是否是平衡二叉树这里是二叉排序...
阅读全文
摘要:【试题描述】定义一个函数,输入一个链表,判断链表是否存在环路,并找出回路起点Circular linked list: A (corrupt) linked list in which a node’s next pointer points to an earlie...
阅读全文
摘要:【试题描述】定义一个函数,字符串转数组数组转字符串【参考代码】 1 public static int strToInt(String str) 2 { 3 int i = 0, num = 0; 4 char[] st...
阅读全文
摘要:【试题描述】定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点【参考代码】方法一: 1 public static Link reverseLinkList(Link head) 2 { 3 if (head == ...
阅读全文
摘要:【试题描述】求二叉树中任意两个节点的最近公共祖先也称为LCA问题(Lowest Common Ancestor)。 二叉查找树如果该二叉树是二叉查找树,那么求解LCA十分简单。基本思想为:从树根开始,该节点的值为t,如果t大于t1和t2,说明t1和t2都位于t的左侧,...
阅读全文
摘要:【试题描述】输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。分析:这是一道很好的考查对递归理解的编程题,因此在过去一年中频繁出现在各大公司的面试、笔试题中。思路:同样是用递归求解。可以考虑求...
阅读全文
摘要:【试题描述】输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab,cba。分析:这是一道很好的考查对递归理解的编程题,因此在过去一年中频繁出现在各大公司的面试、笔试题中。...
阅读全文
摘要:【试题描述】 You are given a binary tree in which each node contains a value. Design an algorithm to print all paths which sum up to tha...
阅读全文
摘要:【试题描述】 输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数 22 和如下二元树 10 / \...
阅读全文
摘要:【试题描述】数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。【试题分析】时间复杂度O(n),空间复杂度O(1) 思路1: 创建一个hash_map,key为数组中的数,value为此数出现的次数。遍历一遍数组,用hash_map统计每个数出现的次数...
阅读全文
摘要:【试题描述】输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度O(n)。思路:当我们加上一个正数时,和会增加;当我们加上一个负数时,和会减少。如果当前得到的和是个负数,那么这个和在接下来的累加中...
阅读全文
摘要:【试题描述】我们把只包含因子2、3和5的数称作丑数。求按从到大的顺序的第1500个丑数。例如6,8是丑数,而14不是,因为它包含因子7.习惯上把1当作第一个丑数。 根据丑数的定义,丑数应该是另一个丑数乘以2、3或者5的结果(1除外)。因此我们可以创建一个数...
阅读全文
摘要:【试题描述】写一个函数,求两个整数的和,要求在函数体内不得使用加减乘除四则运算符合。 基本思路是这样的: int A, B;A&B //看哪几位有进位A^B //不带进位加 考虑二进制加法的过程,步骤一、A^B,能够得到没有进位的加法。步骤二、A&B,能够得...
阅读全文
摘要:进程是什么?程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多道编程中,我们允许多个程序同时加载到内存中...
阅读全文
摘要:称球问题一般会有以下3种变形: 1、N个球,其中有一个坏的,知道是轻还是重,用天平称出坏球来。 2、N个球,其中有一个坏的,不知是轻还是重,用天平称出坏球来。 3、N个球,其中有一个坏的,不知是轻还是重,用天平称出坏球来,并告知坏球是轻还是重。 对于上面3种情况,称量...
阅读全文
摘要:一、入门级程序员的面试题:这些软件设计和设计模式的先关问题大多会出现在初学者面试情景中,什么是设计模式?特定的设计模式又是什么?等等这些概念,也许你很轻易回答这些概念,但文内提供的这些问题也许能给你带来更多价值。1. 什么是设计模式?在你编码过程中使用了哪些设计模式?...
阅读全文
摘要:一、我们为什么要学习vim编辑器?Linux的命令行界面下面有非常多的文本编辑器。比如经常听说的就有Emacs、pico、nano、joe与vim等。vim可以看做是vi的高级版。我们为什么一定要学习vim呢?有以下几个原因:(1)所有的Unix like系统都会内置...
阅读全文
摘要:大家都知道Python语言是一种新兴的编程语言。1989年,Python就由Guido van Rossum发明。Python一直发展态势很好。 原因有几点:1、跨平台性好。Linux、Windows、MacOS、塞班……。2、快速易学。3、模块齐全。 ...
阅读全文
摘要:(可参考 http://c.chinaitlab.com/special/algorithm/Index.html)五大常用算法之一:分治算法分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个...
阅读全文
摘要:1. 引言 哈希表(Hash Table)的应用近两年才在NOI中出现,作为一种高效的数据结构,它正在竞赛中发挥着越来越重要的作用。 哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间;而代价仅仅是消耗比较多的内存。然而在...
阅读全文
摘要:HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。 它是由Nets...
阅读全文
摘要:在平常的代码中,我们常常需要与时间打交道。在Python中,与时间处理有关的模块就包括:time,datetime以及calendar。这篇文章,主要讲解time模块。在开始之前,首先要说明这几点:在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的...
阅读全文
摘要:String str1="ABC"; 和String str2 = new String("ABC"); 有什么区别。String str1="ABC" 可能创建一个对象或者不创建对象,如果"ABC"这个字符串在java String池里不存在,会在java Stri...
阅读全文
摘要:一.Floyd算法 假设从i到j的最短路径上要经过若干个顶点,这些中间顶点中最大的顶点编号为k,最小的顶点为t,因此要求算dist[i][j]的最小值,那么只需要求算dist[i][s]+dist[s][j](t 4 #include 5 #define M ...
阅读全文
摘要:Dijkstra算法的核心思想是贪心策略+动态规划算法流程:在以下说明中,s为源,w[u,v]为点u和v之间的边的长度,结果保存在dis[]初始化:源的距离dis[s]设为0,其他的点距离设为无穷大(实际程序里设成-1了),同时把所有的点的状态设为没有扩展过。循环n-...
阅读全文
摘要:AOE网:在一个表示工程的带权有向图中,用顶点表示事件,用有向边表示活动,边上的权值表示活动的持续时间,称这样的有向图叫做边表示活动的网,简称AOE网。AOE网中没有入边的顶点称为始点(或源点),没有出边的顶点称为终点(或汇点)。AOE网的性质:(1) 只有在某顶点所...
阅读全文
摘要:对于一条有向边(u,v),定义u nextarc) { k=p—>adivex; //对i号顶点的每个邻接点的入度减1 if(!(--indegree[k]))Push(S,k);//若入度减为...
阅读全文
摘要:一些定义:1.一个连通且无回路的无向图称为树.2.若图G的生成子图是一棵树,则该树称为G的生成树.3.在图G的所有生成树中,树权最小的那棵生成树,称作最小生成树.关于找出最小生成树的两种算法,一个称为Kruskal(克鲁斯卡尔),另一个叫Prim(普里姆)(1) Kr...
阅读全文
摘要:KMP 算法我们有写好的函数帮我们计算 Next 数组的值和 Nextval 数组的值,但是如果是考试,那就只能自己来手算这两个数组了,这里分享一下我的计算方法吧。计算前缀 Next[i] 的值:我们令 next[0] = -1 。从 next[1] 开始,每求一个...
阅读全文
摘要:(作者matrix67) KMP算法是拿来处理字符串匹配的。换句话说,给你两个字符串,你需要回答,B串是否是A串的子串(A串是否包含B串)。比如,字符串A="I'm matrix67",字符串B="matrix",我们就说B是A的子串。你可以委...
阅读全文
摘要:一、引言主串(被扫描的串):S=‘s0s1...sn-1’,i 为主串下标指针,指示每回合匹配过程中主串的当前被比较字符;模式串(需要在主串中寻找的串):P=‘p0p1...pm-1’,j 为模式串下标指针,指示每回合匹配过程中模式串的当前被比较字符。字符串匹配:在主...
阅读全文
摘要:1. 哈希表的概念 对于动态查找表而言,1) 表长不确定;2)在设计查找表时,只知道关键字所属范围,而不知道确切的关键字。因此,一般情况需建立一个函数关系,以f(key)作为关键字为key的录在表中的位置,通常称这个函数f(key)为哈希函数。(注意:这个函数并不...
阅读全文
摘要:三种查找算法:顺序查找,二分法查找(折半查找),分块查找,散列表(以后谈) 一、顺序查找的基本思想:从表的一端开始,顺序扫描表,依次将扫描到的结点关键字和给定值(假定为a)相比较,若当前结点关键字与a相等,则查找成功;若扫描结束后,仍未找到关键字等于a的结点,则...
阅读全文
摘要:算法描述 算法描述是指对设计出的算法,用一种方式进行详细的描述,以便与人交流。描述可以使用自然语言、伪代码,也可使用程序流程图,但描述的结果必须满足算法的五个特征。使用自然语言描述算法显然很有吸引力,但是自然语言固有的不严密性使得要简单清晰的描述算法变得...
阅读全文
摘要:B 树、B+ 树、B* 树 作者:July、weedge、Frankie。编程艺术室出品。说明:本文从B树开始谈起,然后论述B+树、B*树,最后谈到R 树。其中B树、B+树及B*树部分由weedge完成,R 树部分由Frankie完成,全文最终由July统稿修订完成。...
阅读全文
摘要:混淆矩阵介绍这些概念之前先来介绍一个概念:混淆矩阵(confusion matrix)。对于 k 元分类,其实它就是一个k x k的表格,用来记录分类器的预测结果。对于常见的二元分类,它的混淆矩阵是 2x2 的。假设要对 15 个人预测是否患病,使用 1 表示患病,使...
阅读全文
摘要:NumPy NumPy官网地址 是使用Python进行科学计算的一个基本库。 其中包括:一个强大的N维数组对象Array;用于集成C / C ++和Fortran代码的工具;实用的线性代数、傅里叶变换和随机数生成函数。除了其明显的科学用途,NumPy也可以用作通用数据...
阅读全文
摘要:在有监督(supervise)的机器学习中,数据集常被分成2~3个即:训练集(train set) 验证集(validation set) 测试集(test set) 一般需要将样本分成独立的三部分训练集(train set),验证集(validation ...
阅读全文
摘要:1、基础架构 1.1 Master Master节点上面主要由四个模块组成:APIServer、scheduler、controller manager、etcd。 APIServer。APIServer负责对外提供RESTful的Kubernetes A...
阅读全文
摘要:在处理json格式字符串的时候,经常会看到声明struct结构的时候,属性的右侧还有小米点括起来的内容。形如type User struct { UserId int `json:"user_id" bson:"user_id"` UserNam...
阅读全文
摘要:go env环境查看用go env 可查看当前go环境变量。$ go envGOARCH="amd64"GOBIN=""GOEXE=""GOHOSTARCH="amd64"GOHOSTOS="darwin"GOOS="darwin"GOPATH="/Users/mac...
阅读全文
摘要:一 在线安装 采用go get的方式安装import 的时候找不到对应的包看看pkg里面有没有二 离线安装 redis客户端采用git clone的方法安装的话可以用以下方法cd srcgit clone https://github.com/go-redis/red...
阅读全文
摘要:在项目中,需要为后台服务撰写API。刚开始接触的时候,并没有考虑太多,就想提供URL,服务端通过该URL进行查询、创建、更新等操作即可。但再对相关规范进行了解后,才发现,API的设计并没有那么简单,远远不是URL的问题,而是一个通信协议的整体架构 1. 使用GET、P...
阅读全文