- 博客(47)
- 资源 (2)
- 收藏
- 关注
原创 子串模糊匹配(Python)
题目详情:从字符串string开始完整匹配子串sub,返回匹配到的字符个数。sub中如果出现'?'表示可以匹配一到三个除'\0'以外的任意字符。如果sub还有找不到匹配的字符,则说明不能完整匹配。如果能完整匹配,返回匹配到的字符个数,如果有多种匹配方式,返回匹配字符数最少的那个,如果不能完整匹配,返回-1输入描述:第一行输入字符串string,长度小于10000第二行输入子...
2019-07-29 23:40:58 7829 2
原创 leetcode多线程:1114~1117(Python)解题记录
一、按序打印(1114)我们提供了一个类:public class Foo {public void one() { print("one"); }public void two() { print("two"); }public void three() { print("three"); }}三个不同的线程将会共用一个Foo实例。线程 A 将会调用 ...
2019-07-27 09:41:15 1714
原创 Dockerfile指令
Dockerfile:把镜像定制每一层添加的配置写入一个文件中,用这个脚本文件构建、定制镜像。可以解决无法重复的问题、镜像透明性问题、体积问题1、FROM:指定基础镜像,指定基于哪个镜像来构建新的镜像,FROM命令必须为dockerfile文件的第一行语法格式:FROM <image> FROM <image>:<tag> #<ta...
2019-07-26 00:52:15 1031
原创 DSP学习笔记
1. DSP 有哪些特点? 哈佛总线结构、流水线结构、硬件乘加单元、优化的指令集。(简要叙述这特点) 2. 哈佛结构与冯·诺依曼结构的区别? 哈佛:程序存储区与数据存储区分开,程序总线与数据总线分开。优点:取指和读写数据可同时进行,加快指令执行速度。 冯·诺依曼:程序与数据共用存储空间,程序与数据共用总线。优点:存储空间利用效率高。 3. 数字信号处理系统的基本组成包含哪几个部...
2019-05-13 00:13:54 6800
原创 Python并发任务之协程
多线程会消耗系统资源,多进程则有GIL限制和影响,Python中还有一种高效地执行并发任务的方式,那就是协程了。协程也成为微线程,比线程更轻量级。协程通过在单线程内进行函数执行切换来进行并发。也就是说,协程是单线程执行,并且在线程内函数之间的执行也是可以切换的。如果说多进程、多线程是抢占式的任务处理方式,那么协程就是协作式的任务处理方式。协程虽然是单线程,但是通过协作切换来充分利用CPU,...
2019-03-26 00:19:51 1896 1
原创 Python并发任务之多线程
多线程 上一篇写了Python多进程的使用方法,现在说一下多线程。多线程虽然可以提供并发能力,但是它对系统资源的消耗也非常大,每个进程都需要申请独立的运行环境和资源,并且子进程之间的上下文切换也需要额外的时间。相比于多进程,多线程则是多个线程共享一个进程,所以只需要申请一份系统资源;并且线程间的上下文切换也更加高效;另外,线程间的通信也变得更加方便。 Python中多线程使用...
2019-03-22 00:43:53 1036
原创 Python并发任务之多进程
多进程 多进程是一种常见的并发任务执行方式,优点为子进程之间数据独立,安全性较好;缺点是系统资源占用较大,进程间切换的开销也较大。 Python中实现多进程有os.fork方法、multiprocess库。其中os.fork只有在Linux平台使用(在Windows平台无法使用),multiprocess则是跨平台的。 os.fork方法用于程序自身的复制。当这个方法...
2019-03-22 00:06:25 1548
原创 [Python]数的划分-动态规划
题目:将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5; 1,5,1; 5,1,1;问有多少种不同的分法。输入:n,k ( 6 < n ≤ 200,2 ≤ k ≤ 6 )输出:一个整数,即不同的分法。输入描述:两个整数 n,k ( 6 < n ≤ 200, 2 ≤ k ≤ 6 )输...
2019-03-17 00:32:49 2913 2
原创 Python三种设计模式
一、Python创建型设计模式1、工厂模式(Factory):解决对象创建问题2、构造模式(Builder):控制复杂对象的创建3、原型模式(Prototype):通过原型的克隆创建新的实例4、单例模式(Brog/Singleton):一个类只能创建同一个对象5、对象池模式(Pool):预先分配同一类型的一组实例6、惰性计算模式(Lazy Evaluaion):延迟计算(P...
2019-02-27 23:08:59 3515
原创 Python3安装scrapy的玄学
一不小心把Linux服务器的重要文件给删掉了,不能连接ssh,只能重新做镜像安装了,什么开发环境都没有了。刚开始一起正常,在使用pip install安装scrapy的时候遇到了经常出现的问题:Collecting Twisted>=13.3.0 (from scrapy) Could not find a version that satisfies the requirem...
2019-02-14 03:10:38 2163
原创 Python正则表达式的re库一些用法(上)
1、查找文本中的模式search()函数取模式和要扫描的文本作为输入,找到这个模式时就返回一个match对象。如果没有找到模式,search()就返回None。每个match对象包含有关匹配性质的信息,包含原输入字符串,所使用的正则表达式以及模式在原字符串出现的位置。import repattern = 'this'text = 'Does this text match th...
2019-02-02 22:12:29 952
原创 Python3的string库模板的应用
模板字符串模板将作为内置的拼接语法的替代用法。使用Template拼接时,要在名字前加前缀$来标识变量(例如,$var)。或者,如果有必要区分变量和周围的文本,可以用大括号包围变量(例如,${var})。import stringvalues = {'var':'foo'}t = string.Template("""Variable : $varEscape ...
2019-02-02 14:09:48 1552
原创 使用Python统计函数绘制复杂图形matplotlib
一、堆积图1、堆积柱状图如果将函数bar()中的参数bottom的取值设定为列表y、列表y1代表另一个数,函数bar(x,y1,bottom=y,color="r")就会输出堆积柱状图代码示例:import matplotlib.pyplot as pltx = [1,2,3,4,5]y = [6,10,4,5,1]y1 = [2,6,3,8,5]plt.bar(x,...
2019-01-05 22:37:56 3391
原创 使用Python统计函数绘制简单图形matplotlib
1、bar() —— 绘制柱状图plt.bar(x,y,align="center",color="b",tick_label=["a","b","c","d","e"],alpha=0.6)参数说明:x:表示x轴上数据的类别y:每种数据的类别的数量align:柱体对齐方式color:柱体颜色tick_label:刻度标签值alpha:柱体透明
2019-01-05 00:30:42 1417
原创 matplotlib图表组成元素
一、函数1、plot() —— 展示变量的趋势与变化用法:plt.plot(x,y,ls="-",lw=2,label="plot figure")参数说明:x:x轴上的数值y:y轴上的数值ls:折线图的线条风格lw:折线图的线条宽度label:标记图形内容的标签文本代码实例:import matplotlib.pyplot as pltimp...
2019-01-04 23:07:18 1382
原创 大数据面试题——查询热门的字符串
题目描述:搜索引擎会通过日志文件把用户每次检索使用的字符串记录下来,每个查询串的长度为1~255B。假设目前有1000万个记录(这些查询串的复杂度比较高,虽然总数是1000万,但如果出去重复后,那么不超过300万个。一个查询串的复杂度越高,说明查询它的用户越多,也就是越热门的10个查询串,要求使用的内存不能超过1GB.分析:每个查询串的最长为255B,1000万个字符串需要占用2.55...
2018-12-15 21:15:18 1349
原创 算法面试题(python)——如何找出数组中出现一次的数
题目描述:一个数组里,除了三个数是唯一出现的,其余的数都出现了偶数次,找出这三个数中任意一个。比如数组序列为[1,2,4,5,6,4,2],只有1、5、6这三个数字是唯一出现的,数字2、4均出现了偶数次,只需要输出数字1、5、6中的任意一个就行。 分析:题目得出的信息:(1)数组中的元素一定为奇数个;(2)由于只有三个数字均出现过一次,显然这三个数字不相同,因此,这三个数字...
2018-12-15 20:35:59 2939
原创 大数据面试题——如何找出访问最多的IP
问题描述:现有海量日志数据保存在一个超大的文件中,该文件无法直接存入内存,要求从 中提取某天访问BD次数最多的IP 分析解读:由于这个题目只关心某一天访问次数最多的IP,因此可以首先对文件进行一次遍历,把这一天访问的IP的相关信息记录到一个单独的文件中。接下来可以用之前的方法来进行求解。唯一需要确定的是把一个大文件分成多少个小文件比较合适。以IPV4为例子,由于一个IP地址占用32...
2018-11-28 14:48:06 2007
原创 大数据面试题——如何在大量的数据中找出不重复的数
问题描述:在2.5亿个整数中找出不重复的数,注意,内存不足以容纳2.5亿个整数。 分析解读:方法一:分治法采用hash的方法,把这2.5亿个数划分到更小的文件中,从而保证每个文件的大小不超过可用内存的大小。然后对于每个小文件而言,所有的数据可以一次性被加载到内存中,因此可以使用字典或set来找到每个小文件中不重复的数。当处理完所有的文件后就可以找出这2.5亿个整数中所有的不重复...
2018-11-28 14:45:02 6747
原创 大数据面试题——如何在大量数据中判断一个数是否存在
题目描述:在2.5亿个整数中判断一个数是否存在,注意,内存不足以容纳2.5亿个整数。 分析解答:方法一:分治法对于大数据相关的算法题,分治法是一个非常好的方法。针对这一题来说,主要思路为:可以根据实际可用内存的情况,确定一个Hash函数,比如:hash(value)%1000,通过这个Hash函数可以把这2.5亿个数字划分到1000个文件中去(a1,a2……,a1000),然后...
2018-11-28 14:43:06 9040 1
原创 大数据面试题——如何从大量数据中找出高频词
问题描述:有一个1GB大小的文件,文件里面每一行是一个词,每个词的大小不超过16B,内存大小限制为1MB,要求返回频数最高的100个词。分析:由于文件大小为1GB,而内存的大小只有1MB,因此不能一次把所有的词读入到内存中去处理,可以采用分治的方法进行处理:把一个文件分解为多个小的子文件,从而保证每个文件的大小都小于1MB,进而可以直接被读取到内存中处理。解题思路:1、遍历文件,...
2018-11-25 21:00:02 4053 3
原创 大数据面试题——如何从大量的url中找出相同的url
题目描述:给定a、b两个文件,各存放50亿个url,每个url各占64B,内存限制是4GB,请找出a、b两个文件共同的url分析:由于每个url需要占64B,所以50亿个url占用空间大小为50亿×64=5GB×64=320GB.由于内存大小只有4GB,因此不可能一次性把所有的url加载到内存中处理。对于这种题目,一般采用分治法,即把一个文件中的url按照某一特征分成多个文件,使得每个...
2018-11-25 20:31:08 3541
原创 使用python绘制根轨迹图
最近在学自动控制原理,发现根轨迹这一张全是绘图的,然而书上教的全是使用matlab进行计算机辅助绘图。但国内对于使用python进行这种绘图的资料基本没有,后来发现python-control包已经将matlab的rlocus封装进去,matlab能做的python也能做。使用python绘制根轨迹图主要使用的是python-control包下的matlab.rlocus函数,具体内容可...
2018-10-26 17:41:15 6720 1
原创 Python装饰器基础及运行时间
一、装饰器基础装饰器是可调用的对象,其参数是另一个函数(被装饰的函数)。装饰器可能会处理被装饰的函数,然后把他返回,或者将其替换成另一个函数或可调用对象。eg:decorate装饰器@decoratedef target(): print("Running target()")#上面写法等同于def target(): print("Running targ...
2018-10-20 09:35:37 1169
原创 在云服务器跑Python程序
最近在鼓弄这TensorFlow的模型,有些模型实在是太大了,CPU占用率100%不说,还一跑起来就跑个大半天,严重影响了学习的进度,所以由于手里刚有一个不大使用的云服务器,配置虽然不咋地,至少还能跑跑程序,所以开始部署TensorFlow模型往上面跑。笔记本CPU占用率图:部署步骤:1、使用Xftp将程序和文件拷贝到云服务器上面2、使用Linux的nohup命令使得...
2018-09-15 15:41:55 15952 1
原创 Julia安装以及使用扩展包package(ERROR: UndefVarError: Pkg not defined)
刚刚安装好Julia1.0,想进行第一步尝试:Pkg.add("PyPlot")却出现错误:ERROR: UndefVarError: Pkg not defined 问题描述:由于安装Julia的扩展包是使用的是Pkg的扩展包,所以在安装扩展包之前必须导入Julia扩展包Pkg 解决方法:导入Pkg包然后再使用Pkg.add()命令using Pkg...
2018-08-18 14:18:51 10222
原创 Linux下安装Julia1.0.0
MIT正式发布编程语言Julia 1.0:Python、R、C++三合一!由于官方文档提示中安装的不是最新的Julia版本,官方的0.7版本安装方法为: https://blog.csdn.net/kingyuan666/article/de...
2018-08-12 01:12:11 7838
原创 在Linux终端安装Julia
官方参考文档:https://julialang.org/downloads/platform.html#generic-binaries一、centos终端安装打开Linux终端输入 sudo dnf copr enable nalimilan/julia sudo yum install julia二、Fedora终端安装 sudo dnf copr...
2018-08-12 00:12:13 4448
原创 运行TensorFlow出现Your CPU supports instructions that this TensorFlow binary was not compiled to use: AV
原因:import os #在顶头位置加上os.environ["TF_CPP_MIN_LOG_LEVEL"]='1' # ‘1’表示默认的显示等级,运行时显示所有信息 os.environ["TF_CPP_MIN_LOG_LEVEL"]='2' # ‘2’运行时只显示 warning 和 Error os.environ["TF_CPP_MIN_LOG_LEVEL"]='3'...
2018-08-11 18:00:33 1491
原创 Python输入数组(一维数组、二维数组)
一维数组:arr = input("") //输入一个一维数组,每个数之间使空格隔开num = [int(n) for n in arr.split()] //将输入每个数以空格键隔开做成数组print(num) //打印数组一维数组输入输出示例: 二维数组:(以n*n的二维数组为例)n = int(input()) /...
2018-08-09 20:14:34 88947 10
原创 Linux命令----su(切换用户)以及passwd(修改用户密码)
一、su命令登录root用户在使用telnet命令可以远程登录,但不可以登录root,这样就需要使用su命令来登录root用户。telnet登录(不能登录root)---1.启动终端 输入telnet ip //ip为Linux系统的ip2.在login处输入root,在password处输入root密码最后显示Login incorrect却不能登录上roots...
2018-08-08 16:34:44 30563
原创 Linux命令----uname查看系统信息
uname就是UNIXname的缩写1.uname可以查询操作系统信息[root@yuan ~]# unameLinux2.uname -n显示系统的主机名[root@yuan ~]# uname -nyuan3.uname -i 显示系统的硬件平台名[root@yuan ~]# uname -ix86_644.组合命令,如:uname -n -i 为同时获...
2018-08-08 16:00:13 1562
原创 将自己的域名解析跳转到博客主页(GitHub中的gitpage跳转)
最近突然迷上了博客,突然又突发奇想,将自己几个月前买的现在限制的域名拿来跳转到自己的csdn博客。经过一番研究,总结----把自己的购买的域名(比如我买的circleyuan.top)跳转到CSDN博客。只需要四步:思路:将自己买的域名解析到自己写的一个网页上,然后这个网页脚本跳转到自己博客的页面,从而实现域名跳转博客的功能。 第一步:申请购买域名,准备一个域名可以在阿里云的万...
2018-08-06 23:18:31 12933 3
原创 Java中的Random()函数
Java中存在着两种Random函数(java.lang.Math.Random以及java.util.Random);一、java.util.Random函数1.带种子构建Random() //创建一个新的随机数生成器,默认种子,每次产生的随机数不同2.不带种子构建Random(long seed) //使用单个 long 种子创建一个新的随机数生成器,...
2018-08-06 14:10:17 12561
原创 Java中ArrayList的使用
ArrayList类是一个特殊的数组--动态数组。来自于System.Collections命名空间;通过添加和删除元素,就可以动态改变数组的长度。优点:1、支持自动改变大小2、可以灵活的插入元素3、可以灵活的删除元素局限:比一般的数组的速度慢一些;用法一、初始化:1、不初始化容量ArrayList arr1 = new ArrayList(); //不初始化...
2018-08-06 13:51:12 100072 12
原创 上传本地代码到GitHub上
由于经常忘记Git的相关代码,百度多了自然不耐烦,干脆自己写个简单的博客记录一下代码及流程了。。。。。。1、在GitHub上新建一个仓库;2、创建完后在仓库左上角的ssh上copy一下地址;3.在本地项目文件夹上按右键打开Git Bash;4.copy仓库的地址git clone "copy之前粘贴板的内容"5.切换到克隆的项目cd “克隆后的文件夹”/6、添加...
2018-08-05 23:27:09 868
原创 xshell无法在小键盘输入数字
自从很久之前用小键盘输入数字后出现奇怪的字母并换行后就不用小键盘,今天脑抽又用小键盘写数字,并决定解决问题。 原因分析:当xshell终端类型不是“VT220”或者“ANSI”的情况下就会出现。 解决方法:1、点击xshell左上角菜单栏“文件”一项 2、在文件下拉选项中选择“属性”一项(或者按快捷键ALT+P) 3、在“属性”中:1、右端类别找...
2018-08-05 15:56:00 6753
原创 Java数值类型之间转换
Java之间的数值转换如图所示,实心箭头代表无数据丢失,虚线箭头代表可能丢失例如:123456789是一个大的整数,包含的位数比float类型能够表达的位数多,但这个数转换为float类型时,将会得到同样大小的结果,但却失去了一定的精度。int n = 123456789;float f =n; //f is 1.23456792E8当转换前后两个数进行二元操作时...
2018-08-02 11:01:04 1085
原创 使用java命令出现Error: A JNI error has occurred, please check your installation and try again的错误
运行Java程序,javac运行.java文件没有报错,但java运行的时候报错 仔细看一下报错Exception in thread "main" java.lang.UnsupportedClassVersionError: helloworld has been compiled by a more recent version of the Java Runtime (cl...
2018-08-01 20:04:45 241725 20
原创 升级pip10.0.0后出现ModuleNotFoundError: No module named 'pip'的问题
pip10升级后各种pip install出错-----Traceback (most recent call last): File "/usr/local/bin/pip", line 7, in <module> from pip._internal import mainModuleNotFoundError: No module named 'pip'...
2018-08-01 19:19:14 1990 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人