- 博客(51)
- 收藏
- 关注
转载 python实现斐波那契数列
斐波那契数列的定义f(0) = 1,f(1) = 1,f(n) = f(n-1) + f(n-2)CODE本次介绍Python中斐波那契数列的四种写法,第一种写法比较常见,第二种写法也比较常见.(鲁迅听了想打人).咳咳.第一种依赖于递归,第二种依赖与循环,前两种算法都是可以在几乎所有编程语言里面都能都快速移植的.我们先从这两种介绍第一种:递归# 递归def Fibonacci_Re...
2018-10-16 18:03:22
1318
转载 SQL的语句优化
原文链接:http://blog.csdn.net/u012942818/article/details/539699721,什么是“执行计划”?执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条记录,那查询优化器会选择“索引查找”方式,如果该表进行了归档,当前只剩下5000条...
2018-09-14 20:23:50
279
原创 mongoDB的简单使用
一、 MongoDB数据库使用注意事项:1. MongoDB数据库的命令:如果是单个单词组成,则默认小写;如果有多个单词组成,则第一个单词首字母小写,后面的单词首字母大写。 如:db.dropDatabase() 小驼峰命名法2. MongoDB数据库的命令参数:基本都是以 字典键值对形式传递。3. 一个MongoDB里可以有多个 数据库(db),一个数据库里可以有多个 集合(co...
2018-09-14 20:00:44
397
原创 安装mangodb遇到的问题
1.安装:python@ubuntu:~$ sudo apt-get install mongodb2.相关文件存放路径:默认各个文件存放路径如下所示:可执行文件存放路径:/usr/bin/mongod 和 /usr/bin/mongo 数据库文件存放路径:/data/db 日志文件存放路径:/var/log/mongodb/mongod.log 配置文件存放路径:/etc/...
2018-09-13 22:19:52
493
原创 爬虫中,爬取到的json如何转换成csv文件用作数据分析?
版本:python2.7以爬取拉钩上深圳python的职位为例# coding=utf-8import requestsimport jsonfrom jsonpath import jsonpathimport urllibclass LagouSpider(object): def __init__(self): self.city = raw_...
2018-09-13 20:03:33
2343
1
原创 一些简单的加密算法
数据不经过处理在网络上传输是特别不安全的,所以在传递前需要加密后再进行传递,再在接收的时候进行解密得到数据,这样就可以保证数据在传输中的安全了1.MD5算法原理:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。单向性:MD5加密后的数据无法还原(有一些网...
2018-09-12 16:22:41
1636
原创 爬虫(抓取静态页面和动态页面的区别,get请求和post请求的区别)
静态页面:非结构化数据:HTML处理方式:正则表达式,xpath, beautifulsoup4静态页面中的数据都包含在网页的HTML中(一般都是get请求)所以可以直接在网页的HTML中提取数据关键词一般都以查询字符串的方式拼接在URL中分析URL的变化可以进行多页爬取python2: urllib + urllib2 / requests# co...
2018-09-11 21:10:31
8825
原创 归并排序(Python实现)
归并排序归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。def merge_sort(alist): n = len(alist) if n...
2018-09-10 21:51:10
265
原创 快速排序(Python实现)
快速排序快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。def quick_sort(alist, firs...
2018-09-09 19:54:13
175
原创 希尔排序(python实现)
希尔排序希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文...
2018-09-09 18:18:25
217
原创 python2和python3的不同
1.printpython2: print 'hello world' (特殊语句)python3: print('hello world') (函数)2.inputpython2: raw_input() 接收的是字符串类型,input()会根据输入的类型自行推导python3: input() 无论输入的是什么类型,接收到的都是字符串类型3....
2018-09-07 16:07:59
248
原创 插入排序
插入排序有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但...
2018-09-06 15:46:08
197
原创 选择排序(Python实现)
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。稳定性的概念:在排序过程中,相同元素的顺序在排序完成后顺序依然不发生变化选择排序相对于冒泡排序的来说是不稳定的当选择排序在(升序每次选择最大的情况下)是有可能发生不稳...
2018-09-02 15:48:28
311
原创 Django项目(八)购物车功能的实现
业务需求分析1.在用户登录和未登录状态下,都可以保存用户的购物车数据2.用户可以对购物车数据进行增、删、改、查3.用户对于购物车数据的勾选也要保存,在订单结算页面会使用勾选数据4.用户登录时,合并cookie技术实现对于未登录的用户,购物车数据使用浏览器cookie保存对于已登录的用户,购物车数据在后端使用Redis保存幂等(非幂等)的概念非幂等 sku_id...
2018-09-01 21:56:15
7939
3
原创 HTML页面静态化技术
随着网站的内容的增多和用户访问量的增多,无可避免的是网站加载会越来越慢,受限于带宽和服务器同一时间的请求次数的限制,我们往往需要在此时对我们的网站进行代码优化和服务器配置的优化。此文已Django的电商网站为例(处理高并发问题)技术点:首页静态化,详情页面静态化,定时任务,异步任务所谓的静态化技术就是 将查询好的数据填充到模板中,然后将生成的html写入到指定的文件中静态处理后又给...
2018-08-30 16:22:59
7234
转载 如何处理高并发问题
一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是...
2018-08-30 10:04:05
542
原创 LeetCode 690 员工的重要性
给定一个保存员工信息的数据结构,它包含了员工唯一的id,重要度 和 直系下属的id。比如,员工1是员工2的领导,员工2是员工3的领导。他们相应的重要度为15, 10, 5。那么员工1的数据结构是[1, 15, [2]],员工2的数据结构是[2, 10, [3]],员工3的数据结构是[3, 5, []]。注意虽然员工3也是员工1的一个下属,但是由于并不是直系下属,因此没有体现在员工1的数据结构中...
2018-08-28 21:35:22
186
原创 Docker技术
一.Docker简介1.了解虚拟化的概念在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种 实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间 的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚 拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计 算能力和资料...
2018-08-28 21:17:16
534
原创 冒泡排序(Python实现)
冒泡排序冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,一次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二...
2018-08-27 18:09:26
388
原创 省市区地址缓存
area.sql准备数据首先数据库设计分析:设计成自关联的一张表字段:id name parent_id省:parent_id = null市: parent_id = 省的id区(县):parent_id = 市的id需求:刷新页面时,显示全部的省份信息选择省时,显示所有属于该省的市的信息选择市时,显示所有属于该市的区(县)信息1.创建一个模型类...
2018-08-27 12:59:25
2215
原创 绑定邮箱(邮箱激活)功能的实现
在许多网站的用户中心中,都有绑定邮箱的功能,那这到底是怎么实现的呢?本文主要讲述使用Django发送邮件的方法(以163邮箱为例)常用的免费服务器还有126,QQ注意:项目未上线,只能在虚拟机中登录的163邮箱点击验证链接才能够成功跳转一.163邮箱配置1.注册163邮箱已注册成功2.登录后设置点击设置,点击POP3/SMTP/IMAP3.点击客...
2018-08-27 11:34:23
5720
原创 LeetCode 155 最小栈
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.pus...
2018-08-27 10:32:58
177
原创 Django项目(五)收货地址的实现
一.省市区地址查询首先分析数据模型类的设计设计成3张表肯定是不合理的,由于省,市,区具有共性,我们将其设置成一张表id,name,parent省的parent设置为null,市的parent设置为省的id,区(县)的parent设置为市的idclass Area(models.Model): """ 行政区划 """ name = models...
2018-08-26 21:46:58
2340
3
原创 LeetCode 641 设计循环双端队列
设计实现双端队列。你的实现需要支持以下操作:MyCircularDeque(k):构造函数,双端队列的大小为k。 insertFront():将一个元素添加到双端队列头部。 如果操作成功返回 true。 insertLast():将一个元素添加到双端队列尾部。如果操作成功返回 true。 deleteFront():从双端队列头部删除一个元素。 如果操作成功返回 true。 dele...
2018-08-26 14:57:11
1241
原创 LeetCode 704 二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums= [-1,0,3,5,9,12], target= 9输出: 4解释: 9 出现在 nums中并且下标为 4示例 2:输入: nums= [-1,0,3,5,9,12], targe...
2018-08-25 15:14:28
168
原创 QQ第三方登录(itsdangerous生成激活token)
一.成为QQ互联的开发者注册链接:http://wiki.connect.qq.com/%E6%88%90%E4%B8%BA%E5%BC%80%E5%8F%91%E8%80%85等个3-5 天的工作日审核,审核通过就称为一个开发者了二.创建应用在应用管理中创建一个应用,得到APPID填写相关资料,审核通过得到APPKEY,记录之前的回调地址三.项目实现浏览器-->...
2018-08-24 15:30:58
3989
原创 LeetCode 202 快乐数
编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。示例: 输入: 19输出: true解释: 1**2 + 9**2 = 828**2 + 2**2 = 686**2 + 8**2 = 100...
2018-08-24 13:56:43
200
原创 LeetCode 268 缺失数字
给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1]输出: 8说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?思路:首先通过set将nums排序,然后通过一个从0开始的累加器与num...
2018-08-24 13:45:49
204
原创 LeetCode 283 移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。思路:遍历列表,一旦列表中的元素为零,从列表中删除,在末尾添加一个零class Solution: def moveZeroes(s...
2018-08-23 15:48:10
131
原创 JWT 及Django REST framework JWT的配置
什么是JWT?Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直...
2018-08-22 15:50:13
848
1
原创 跨域CORS及本地域名的配置
一.同源的概念何为同源?只有当协议、端口、和域名都相同的页面,则两个页面具有相同的源。只要网站的 协议名protocol、 主机host、 端口号port 这三个中的任意一个不同,网站间的数据请求与传输便构成了跨域调用,会受到同源策略的限制。 同源策略限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的关键的安全机制。浏览器的同源策略,出于防范跨站...
2018-08-22 15:20:51
1708
原创 LeetCode 682 棒球比赛
你现在是棒球比赛记录员。给定一个字符串列表,每个字符串可以是以下四种类型之一:1.整数(一轮的得分):直接表示您在本轮中获得的积分数。2. "+"(一轮的得分):表示本轮获得的得分是前两轮有效 回合得分的总和。3. "D"(一轮的得分):表示本轮获得的得分是前一轮有效 回合得分的两倍。4. "C"(一个操作,这不是一个回合的分数):表示您获得的最后一个有效 回合的分数是无效的,应该被移除...
2018-08-22 14:54:40
276
原创 LeetCode 136 只出现1次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4思路:遍历列表中的每个数据,一旦count=1,就返回,时间复杂度为O(n)class S...
2018-08-21 11:27:33
145
原创 LeetCode 485 最大连续1的个数
给定一个二进制数组, 计算其中最大连续1的个数。示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意:输入的数组只包含 0 和1。 输入数组的长度是正整数,且不超过 10,000。class Solution: def findMaxConsecutiveOnes(self, nums...
2018-08-21 09:17:45
158
原创 LeetCode 463 岛屿的周长
给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。示例 :...
2018-08-21 09:05:25
272
原创 小谈Celery技术
Celery参考文档:http://docs.celeryproject.org/en/latest/index.html#Celery介绍Celery是一个功能完备的即插即用的任务队列Celery适用异步处理问题,比如发送邮件,文件上传,图像处理等等比较耗时的操作,我们可将其异步执行,这用可以减少用户的等待时间,提高用户体验.Celery特点:1.简单,易于使用和维护2....
2018-08-20 19:21:46
386
原创 商业模式介绍
1.B2B--企业对企业案例:阿里巴巴,慧聪网2.C2C--个人对个人案例:淘宝,易趣,瓜子二手车3.B2C--企业对个人案例:唯品会,乐蜂网4.C2B--个人对企业案例:海尔商城,尚品宅配5.O2O--线上到线下案列:美团,饿了么6.F2C--工厂到个人案例:Dell7.B2B2C--企业--企业--个人案例:京东商城,天猫商城 ...
2018-08-19 15:27:59
933
原创 LeetCode 258 各位相加
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。示例:输入: 38输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。class Solution: def addDigits(self, num): """ :type num: int ...
2018-08-17 16:03:51
173
原创 LeetCode 561 数组拆分
给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大。示例 1:输入: [1,4,3,2]输出: 4解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4).提示:n 是正整数,范围在 [1, 10000...
2018-08-13 19:46:33
129
原创 LeetCode 821 字符的最短距离
给定一个字符串 S 和一个字符 C。返回一个代表字符串 S 中每个字符到字符串 S 中的字符 C 的最短距离的数组。示例 1:输入: S = "loveleetcode", C = 'e'输出: [3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0]说明:字符串 S 的长度范围为 [1, 10000]。 C 是一个单字符,且保证是字符串 S 里的字符。 ...
2018-08-13 15:52:22
215
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人