自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jason_cuijiahui的博客

区块链+人工智能

  • 博客(318)
  • 收藏
  • 关注

原创 Python的对象和类(6)

什么是对象对象既包含数据(变量,更习惯称之为特性,attribute),也包含代码(函数,也成为方法)。使用class定义类之前,我们把对象比作塑料盒子。类(class)则像是制作盒子用的模具。例如,Python的内置类String可以创建像’cat’和’duck’这样的字符串对象。# 创建Person类class Person(): # __init__是Python中一个特殊的函数名,

2017-06-26 15:45:01 1764

原创 Python盒子:模块、包和程序

命令行参数test.pyimport sysprint('Program arguments:', sys.argv)模块和import语句简单用法当前目录如下:-f1 - __init__.py - haha.pymycode.pypython mycode.py会把mycode当前的目录.加入到路径中,如果要用包f1下的模块...

2017-06-22 17:10:45 1011

原创 Python里的函数参数传递方式(表现为非值传递也非引用传递)

我们先来看两个例子例子1例子2分析刚刚进入函数体内是,外部x以及内部x引用同一个对象。当对内部x引用的对象(尾部x也在引用这个对象)进行修改时差别就出现了: - 对于例子1,执行x = 100。在此过程中,程序先生产一个新对象(100),然后内部x指向该新对象。程序执行到最后,内部x失效,外部x仍然指向最初的对象。 - 对于例子2,执行x.append(2)。在此过程中,列表是一个可变的对象,此

2017-06-22 13:38:24 699

转载 linux下的路径

假如你 要切换到当前目录下的 etc 目录中去 那么就用这个 cd etc 这就是相对路径,而这种写法 cd /etc 就是回到根目录下的etc 目录下 绝对路径 ,绝对路径文件前面多出一个/ (绝对路径 路径写法是从根目录/ 写起来的。)有相对路径有时候操作起来问题就简单多了,例如 我有个目录 /home/test/study /home/test/test 那么我从第一个

2017-06-17 18:05:12 6085

原创 Python外壳:代码结构

使用#注释使用\连接把\放在一行的结束位置,Python仍然将其解释为同一行使用if、elif和else进行比较and、or、not5num1 = 10num2 = 900if 5<num1<100<num2<1000: print(1)elif num1<=5: print(2)elif num1 == 100 and num2 >500: print(3)e

2017-05-29 21:01:59 1250

转载 python中的reduce函数

python中的reduce函数

2017-05-28 10:02:14 730

原创 Python3自定义key函数排序

Python2中的**自定义布尔函数cmp=custom_cmp(x, y)**由Python3中的**key=custom_key(x)**代替。在python3中,待比较元素x通过custom_key函数转化为Python能比较的值custom_key(x),进而再基于返回值进行排序。

2017-05-26 16:47:47 24916 2

转载 Python中lambda表达式

lambda只是一个表达式,函数体比def简单很多。lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。如下例子:定义了一个lambda表达式,求三个数的和。再看一个例子:用lambda表达式求n的阶乘。(关于reduce函数)-------

2017-05-26 15:42:18 1107

原创 Python容器:列表、元组、字典和集合

Python的基本数据类型: - 布尔型 - 整形 - 浮点型 - 字符串型列表和元组元组和列表都可以包含零个或多个元素(每个元素都可以是任何Python类型的对象,不止是基本数据类型)元组是不可变的,当你给元组赋值时,这些值就被固定在了元组里,再也无法修改。然而,列表却是可变的,这意味着可以随意地插入或删除其中的元素。 列表列表非常适合利用顺序和位置定位某一元素,尤其是党元素的顺序或

2017-05-26 15:38:03 3193

原创 Python基本元素:数字、字符串和变量

Python基本元素:数字、字符串和变量

2017-05-24 17:27:04 1123

原创 Python2 & Python3

Python2与Python3最明显的区别在于调用print的方式,最重要的区别则是处理Unicode字符的方式。

2017-05-24 13:39:52 291

转载 何时不应该使用Python

Python并非在所有场合都是最好用的语言。

2017-05-24 13:35:37 334

翻译 静态/动态类型语言 & 强/弱类型语言

静态类型语言:变量类型为一整体动态类型语言:值类型为一整体强/弱类型语言:核心在类型转换

2017-05-24 10:56:18 299

原创 Python程序执行过程的整合解读

与java类似,Python将.py编译为字节码,然后通过虚拟机执行。编译过程与虚拟机执行过程均在python25.dll中。Python虚拟机比java更抽象,离底层更远。编译过程不仅生成字节码,还要包含常量、变量、占用栈的空间等,Pyton中编译过程生成code对象PyCodeObject。将PyCodeObject写入二进制文件,即.pyc。

2017-05-21 16:56:51 756

原创 Window下的Shell:PowerShell

Windows下强大的Shell,与Linux下的Shell指令兼容

2017-05-21 16:02:00 745

翻译 彻底讲清楚Python的Pip 与 Virtualenv

Virtualenv简介Virtualenv solves this problem by creating a completely isolated virtual environment for each of your programs. An environment is simply a directory that contains a complete copy of ev...

2017-05-21 15:47:36 3879

原创 python字符串之'\x00'与空串''的区别

Python里面没有字符这个类型。字符串是一种直接量或者说是一种标量,这意味着Python解释器并不会包含其他Python类型的。字符串是不可变类型,就是说改变一个字符串元素需要新建一个新的字符串。

2017-05-18 22:57:46 38646

原创 To_10_r_100_8_6---有304瓶啤酒,每3个空瓶子能换一瓶新啤酒,问能喝到多少瓶啤酒?

题目:有304瓶啤酒,每3个空瓶子能换一瓶新啤酒,问能喝到多少瓶啤酒?思路:当第一次喝了三瓶以后,留下了一个空瓶,以后,每新取两瓶就相当于喝了三瓶示意图:| o o o | o o | ... | o o | o            |-> o       |-> o |->o结果:3+((304-3)/2)*3+1+(304-3)%2=455

2015-09-24 10:39:38 784

原创 To_review_100_5---Karp Rabin算法的整理

思路:    先比较模式串与主串对应字串的哈希值:    若不同,模式串右移一位进行比较;    若相同,比较模式串以及主串对应字串的每一个字符:1. 若相同,返回找到模式串;2. 若不同,模式串右移一位进行比较;更详细参考:http://blog.csdn.net/onezeros/article/details/5531354C++代码:#i

2015-06-26 21:35:33 290

原创 To_review_100_4---Horspool算法的整理

思路:    从后往前进行匹配。    遇到模式串与主串不匹配时,根据主串的最后一个字符R的情况,模式串向右进行移动:    1. 当模式串中不存在R时,直接越过R,向右移动模式串长度    2. 当模式串中存在R时,找出模式串中最右的R'=R,并向右移动模式串,使得模式串的R’对上主串的R例子:    STEP1——       主串:s u b s

2015-06-25 08:43:56 320

原创 To_review_100_3---Sunday算法的整理

PS:前两天在看KMP算法以及BM算法时被虐哭了= =,今天看Sunday算法感觉好爽^_^,后面再整理几个模式匹配的算法,最后比较一下这几个模式匹配算法的性能思路:    遇到模式串与主串不匹配时,根据主串中参加匹配的最末字符的下一位字符R的情况,模式串向右进行移动:    1. 当模式串中不存在R时,直接越过R,向右移动模式串长度+1    2. 当模式串中存在R时,找出模式串

2015-06-24 21:45:45 417

原创 To_10_r_100_8_5---不用乘法或加法增加8倍。现在用同样的方法增加7倍

题目:不用乘法或加法增加8倍。现在用同样的方法增加7倍思路:15(10)=000001111(2)>>2 000000011(2)=3    ——    相当于15/(2^2)=315(10)=000001111(2) 000111100(2)=60  ——    相当于15*(2^2)=60增加8倍:n增加7倍:nC++代码:略

2015-06-23 21:51:02 884

原创 To_review_100_1---KMP算法的整理

主题:非回溯KMP算法用途:模式匹配算法、在主串中寻找一个模式(简单来说就是在一个长串中找一个短串......)参数:S为主串,n是主串的字符个数;P为子串,m是子串的字符个数;来源:最原始的模式匹配程序           1. 主串与子串向左对齐           2. 比较主串与子串重合的部分           3. 若重合部分一致,则返回主串的位置;若重合部分非

2015-06-20 17:31:42 370

原创 To_10_r_100_8_4---用一种算法在一个循环的链接表里插入一个节点,但不得穿越链接表

题目:    用一种算法在一个循环的链接表里插入一个节点,但不得穿越链接表。(个人理解:就是要在头结点和尾结点间插入元素)思路:   感觉太简单,感觉理解错了吧......不就p->next!=head的话,就可以在p后面插入新元素么.......我想静静......C++代码:    略

2015-06-20 11:54:15 1128

原创 To_review_100_1---循环链接表的整理

主题:整理的是带头结点的单循环链表关键:    1. 头结点不存储链表元素    2. 带头结点的单循环链表分为设置头指针以及设置尾指针两种判断空链表的条件:    头指针:head==head->next;    尾指针:rear==rear->rear;特点:    1. 循环链表中没有NULL指针。涉及遍历操作时,其终止条件就不再是像非

2015-06-20 11:39:26 621

原创 To_10_r_100_8_3---颠倒一个链接表的顺序(递归以及非递归方式)

题目:    用一种算法来颠倒一个链接表的顺序。现在用递归以及非递归的方法实现。思路:    就是把链接表分为一对一对(pair1, pair2)进行处理。如a1->a2->a3->NULL    第一对:(NULL,a1)    第二对:(a1,a2)    第三对:(a2,a3)    第四对:(a3,NULL)——完毕C++代码(含递归以及非递

2015-06-20 11:29:06 821

原创 To_10_r_100_8_2---如果你只能将金条切割两次,你怎样分给这些工人?

题目:    你让一些人为你工作了七天,你要用一根金条作为报酬。金条被分成七小块,每天给出一块。如果你只能将金条切割两次,你怎样分给这些工人?思路:    类似于找零问题答案:    把金条切割两次,按照1:2:4比例分为3份,分别标号为a1,a2,a4。    流程:    第一天:把a1给予工人    第二天:把a2给予工人,收回a1   

2015-06-20 09:58:11 956

原创 To_10_r_100_8_1---判断出三盏灯分别是由哪个开关控制的

题目:    有两间房,一间房里有三盏灯,另一间房有控制这三盏灯的开关(这两间房是分割开的,毫无联系).现在要你分别进这两间房一次,然后判断出这三盏分别是由哪个开关控制,你能想出办法吗?(注意:每间房只能进一次)思路:    单单利用灯的亮灭并不足以完成任务,需要考虑除了亮灭的另外的不同点,比如发热答案:    由于工作时间长的灯泡的温度高,工作时间短的温度低,

2015-06-20 09:46:45 578

原创 To_10_r_100_7---关于链表的环以及相交问题的整理

!参考网络资料和自己的理解整理而得题目:1. 如何判断是否有环?答:如果有两个头结点指针,一个走的快,一个走的慢,那么若干步以后,快的指针总会超过慢的指针一圈而相遇。       感性理解:就像是时钟的分针以及秒针一样。       定量分析:当fast与slow相遇时,show肯定没有走完链表,而fast已经在还里走了n(n>= 1)圈。假设slow走了s步,那么fast走了

2015-06-13 09:50:43 489

原创 To_10_r_100_6---根据上排给出十个数,在其下排填出对应的十个数

! 根据网络资料以及自己理解方式重新整理题目:要求下排每个数都是先前上排那十个数在下排出现的次数。   上排的十个数如下:   【0,1,2,3,4,5,6,7,8,9】例子说明:            共n个数值数值: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9   ——  a[0], a[1], ...,a[n-1]分配: 6, 2,

2015-06-12 16:23:49 496

原创 To_10_r_100_5---查找最小的K个元素

题目:输入n个整数,输出其中最小的K个。思路:1. 复杂度O(nlogn)    :快排之类,然后输出最小的K个。2. 复杂度O(kn)         :遍历找k次最大值3. 堆排序O(n+klogn):建堆O(n),取出k个最小值O(klogn)。C++代码:3. 堆排序// Heap classtemplate class heap{

2015-06-12 00:37:02 479

原创 To_review_100_0---堆的整理

引入:    一些按照重要性或优先级来组织的对象称为优先队列。    在普通队列数据结构中查找具有最高优先级元素的时间代价为O(n),因而普通队列不能有效地实现优先队列。    在有序表或无序表中插入和删除的时间代价都是O(n)。    可以考虑使用把记录按优先级组织的BST,其平均情况下插入和删除操作的总时间代价为O(nlogn),平均时间代价为O(logn)。但是BST可能会变

2015-06-11 13:28:52 407

原创 To_10_r_100_4---在二元数中找出某一值的所有路径

题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数 22 ,如下图二元树:                                            10                                           /     \

2015-06-10 09:03:31 427

原创 To_10_r_100_3---求子数组的最大和

题目:输入一个整形数组,数组里有整数也有负数。数组中连续的一个或多个整数组成一个字数组,每个字数组都有一个和。求所有字数组的和的最大值。要求时间复杂度为O(n)。例如:输入数组:1,-2, 3, 10,-4, 7, 2,-5其最大的子数组为3, 10,-4 ,7 ,2输出:18思路:贪心算法,从左到右进行扫描求和,若得到的和比存储的最大值要大,则需要更新

2015-06-09 22:37:48 487

原创 To_10_r_100_2---设计包含min函数的栈

题目:设计包含min函数的栈定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。方法一:思路:栈中的每个元素维护一个min元素C++代码实现:struct MinStackElement{ int value; int min;};class MinStack{pub

2015-06-08 17:25:06 427

原创 To_10_r_100_1---N个孩子站成一排,给每个人设定一个权重(已知)。按照如下的规则分配糖果

题目:N个孩子站成一排,给每个人设定一个权重(已知)。按照如下的规则分配糖果: (1)每个孩子至少分得一颗糖果 (2)权重较高的孩子,会比他的邻居获得更多的糖果。问:总共最少需要多少颗糖果?请分析算法思路,以及算法的时间,空间复杂度是多少。思路:先把每个孩子的糖初始化为1,经过两轮扫描:第一轮:保证后面比前面权值高的孩子,必定多得1个糖果第二轮:保证前面比后面权值高的孩子,必定多得1个糖果把分

2015-06-07 23:53:51 2361

原创 To_10_r_100_0---把二元查找树转变成排序的双向链表

题目:把二元查找树转变成排序的双向链表输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。10/ \6 14/ \ / \4 8 12 16转换成双向链表4=6=8=10=12=14=16。首先我们定义的二元查找树节点的数据结构如下:struct BSTreeNode{int m_nVa

2015-06-06 21:47:49 558 2

原创 配置安装Python+安装常用函数库——DAY1_2015_05_20

本系列记录本人机器学习以Python为实现方式的实践过程,希望自己能够踏踏实实完成这个系列,也希望能够与各位切磋交流!一、安装Python        下载官网:https://www.python.org/downloads/问题1:Python2以及Python3的选择问题回答1:Python3毫无疑问是最新的而且不断在发展,而Python2已经完结,最终版为Python2.

2015-05-20 20:33:00 956

空空如也

空空如也

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

TA关注的人

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