- 博客(21)
- 收藏
- 关注
转载 Python 并行化简介
基本概念 - 并行、并发并行, parallel 互不干扰的在同一时刻做多件事; 如,同一时刻,同时有多辆车在多条车道上跑,即同时发生的概念. 并发, concurrency 同时做某些事,但是强调同一时段做多件事. 如,同一路口,发生了车辆要同时通过路面的事件. 队列, 缓冲区 类似排队,是一种天然解决并发的办法.排队区域就是缓冲区. 解决并发: 【 "食堂打饭...
2018-04-25 11:32:03 477
原创 0-1背包问题的 python 实现
背包问题是一个典型的动态规划问题,这个不对其作解释了,直接给出代码。 求重量与价值分别为:[10, 15], [15, 25], [20, 35], [25, 45], [30, 55], [35, 70],背包容量为 80 时可以容纳的最大价值。#动态规划求背包问题Things = [[0, 0], [10, 15], [15, 25], [20, 35], [25, 45],...
2018-04-23 16:45:55 549
原创 53. Maximum Subarray 最大子串和问题
LeetCode传送门 本题为经典的面试笔试题,要求给一个数字序列,求其最大子串和,注意需要与最大子序列和的区别,子串要求连续,而子序列只要数字的顺序符合即可,不要求连续。 解题思路主要有一下三种: 1.暴力解法: 这里不再啰嗦,算法复杂度为O(n2),LeetCode中超时无法 AC。 2.分治法 思路:将大问题转化为小问题,然后解决。 ...
2018-04-20 11:41:07 286
原创 50. Pow(x, n)
这道题要求计算 X 的 n 次幂,如果采用普通解法,无法AC,会提示超时,因此采用递归实现二分法,将时间复杂度由 O(n) 提升到 O(logn)。class Solution(object): def myPow_time_limit(self, x, n): #这样会超时 count = 0 result = 1 while co...
2018-04-19 21:55:47 229
原创 49. Group Anagrams python实现
class Solution(object): def groupAnagrams(self, strs): """ :type strs: List[str] :rtype: List[List[str]] """ strstemp = [] for str in strs: ...
2018-04-18 23:14:18 224
原创 RSA 原理与 python 实现
原理摘自:http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html如果看不懂或者对此没有需求的同学可以直接翻到底查看 python 实现一、基础数论1、互质关系如果两个正整数,除了1以外,没有其他公因子,我们就称这两个数是互质关系(coprime)。比如,15和32没有公因子,所以它们是互质关系。这说明,不是质数也可以构成...
2018-04-18 11:18:31 1618 1
转载 TCP 与 socket 原理简介
TCP/IP原型DARPA一个项目,逐渐演变而来的。端口号0~1023:管理员才有权限使用,永久地分配给某应用使用;注册端口:1024~41951:只有一部分被注册,分配原则上非特别严格;动态端口或私有端口:41952+:/proc/sys/net/ipv4/ip_local_port_range:内核参数定义两个数字,表示可以做为临时端口的起始数字和结束数字。套接字类型:tcp socket ...
2018-04-18 11:09:53 381
转载 C++ map 简介
标准库map类型是一种以键-值(key-value)存储的数据类型。以下分别从以下的几个方面总结:map对象的定义和初始化map对象的基本操作,主要包括添加元素,遍历等1、pair类型1.1、pair类型的定义和初始化pair类型是在有文件utility中定义的,pair类型包含了两个数据值,通常有以下的一些定义和初始化的一些方法:pair<T1, T2> p;pair<T1, ...
2018-04-16 23:22:14 718
原创 python 中的变量赋值和 swap(a, b)
python 中为什么不需要 swap() 函数,而只需要执行: a, b = b, a 就可以交换 a,b 的值呢? 这是因为在 python 中,变量所指向的都是一个对象,以引用的方式来使用对象。 以 a = 1 为例,python 中首先给 “1”分配一个地址,然后把 “1”放进去,即在“地址 1 ”中放入“1”,然后让 a 指向这个地址(a 也就是 C++ ...
2018-04-16 14:31:59 1017
原创 python 实现简单的爬虫
git 地址:https://github.com/Angel-LQ/MySampleCrawler 实现了百度百科对于 python 词条的1000 个页面抓取程序模块: 1. url 管理器: 建立两个 set 分别存储 待抓取 url 和 已抓取 url,实现去重 2. 网页下载器 使用 urllib.request 库实现 url 的下...
2018-04-15 21:50:50 201
原创 cookie 简介
1、cookie的作用:我们在浏览器中,经常涉及到数据的交换,比如你登录邮箱,登录一个页面。我们经常会在此时设置30天内记住我,或者自动登录选项。那么它们是怎么记录信息的呢,答案就是今天的主角cookie了,Cookie是由HTTP服务器设置的,保存在浏览器中,但HTTP协议是一种无状态协议,在数据交换完毕后,服务器端和客户端的链接就会关闭,每次交换数据都需要建立新的链接。就像我们去超市买东西,没...
2018-04-14 22:06:16 329
转载 MySQL索引背后的数据结构及算法原理
MySQL索引背后的数据结构及算法原理数据库索引是一个面试热点,在此搜集相关资料,以备学习之用。下面是一位牛人写得关于数据库索引的精品之作,因为很好,不敢修饰,转载至此与博友共享。原文链接:MySQL索引背后的数据结构及算法原理本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支...
2018-04-13 23:12:10 106
原创 39. Combination Sum 回溯算法简析
LeetCode传送门 这道题要求给你一组正数 C,然后给你一个目标数 T,让你从那组C中找到加在一起等于 T 的那些组合。 例如:给你 [2,3,6,7] 和 7,则返回 [[2,2,3],[7] ] 。 想解决这个问题前,我们首先引入一个新问题,图(树)的遍历问题。 假如我们想要深度优先遍历这个树,返回[ [2,2,2,2] , [2,2,2,3] , [.....
2018-04-13 23:02:42 131
转载 区块链简介
区块链技术和原理区块链是什么它是为比特币而设计的一种特殊的数据库技术,基于椭圆曲线数字签名算法来实现去中心化的p2p系统设计。区块是什么样子的索引(区块):这是哪个区块(初始区块索引为0)哈希: 区块有效么 固定长度的数值,用来标识唯一数据 哈希通过将索引、前个哈希、时间戳、数据、随机数作为输入后计算得出。前个哈希: 之前一个区块有效么时间戳: 区块是什么时候添加的数据: 区块中存储的价值信息随机...
2018-04-12 15:58:20 375
原创 由 LeetCode 031 得到的全排列解法
由此文 LeetCode 031 我们可以根据一个 list 序列得到它的下一个字典序列,由此得到全排列的实现方法。 没啥说的,直接上代码了。class Solution(object): def sortlist(self, nums, right, left): left += 1 for i in range(right, left):...
2018-04-12 15:54:57 140
原创 31. Next Permutation 解法思路与 python 实现
LeetCode传送门 题目要求实现所给 list 的下一个字典序,也就是说,给出比当前数字大的最小数字,以 [1,2,3] 为例,比 123 大的数字的最小值为 132 。 例子 [1,4,5,5,7,6,4,2] 结果:[1,4,5,6,2,4,5,7] 想要实现,我们首先需要倒数找到第一个数字满足 nums[i] < nums[i+1],这样的话 nums[0] 到...
2018-04-12 15:42:41 292
原创 python里字典的实现
字典类型是Python中最常用的数据类型之一,它是一个键值对的集合,字典通过键来索引,关联到相对的值,理论上它的查询复杂度是 O(1) ,它的实现是通过Hash tables的。哈希表 (hash tables)哈希表(也叫散列表),根据关键值对(Key-value)而直接进行访问的数据结构。它通过把key和value映射到表中一个位置来访问记录,这种查询速度非常快,更新也快。而这...
2018-04-11 10:15:34 361
原创 34. Search for a Range
LeetCode传送门典型的二分查找的衍生问题,AC代码如下:class Solution(object): def searchTwo(self, left, right, nums, target): if left > right: return None temp = nums[(left + right) // 2]...
2018-04-10 22:47:32 117
原创 30. Substring with Concatenation of All Words
LEETCODE传送门 这里主要记录 HashMap 的使用:1. list 转为 dict 之后,空间换时间,使得每次在 list 中的查找遍历的O(n2)减小到O(n),适用于多次访问 list 的情况下。2. list 中如果存在重复,则可以将 dict 的 value 标记为 0,1,2,3 ... 同时建立一个 tempdict 用来存已经使用过的,以避免 dict 中 key 重...
2018-04-09 20:41:05 114
转载 文本比较算法Ⅱ——Needleman/Wunsch算法
本文介绍基于最长公共子串的文本比较算法——Needleman/Wunsch算法。 还是以实例说明:字符串A=kitten,字符串B=sitting 那他们的最长公共子串为ittn(注:最长公共子串不需要连续出现,但一定是出现的顺序一致),最长公共子串长度为4。 定义: LCS(A,B)表示字符串A和字符串B的最长公共子串的长度。很显然,LSC(A,B)=0表示两个字符串没有公共部分。 ...
2018-04-02 22:27:56 237
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人