- 博客(45)
- 收藏
- 关注
转载 判别模型和生成模型
在前面的章节中,我们介绍过SVM、逻辑回归,这两者都属于监督学习中的一种,即训练数据的标签是给定的,我们希望通过对训练数据进行学习,这样对于给定的新样本数据,我们可以对它的类别标签进行预测。实际上,监督学习又可以分为两类,判别模型(Discriminative model)和生成模型(generative model),前面提到的SVM和逻辑回归都属于判别模型的一种。那么判别模型和生成模型有何区别...
2018-07-24 12:33:20 216
转载 redis 面试总结
1.什么是redis? Redis 是一个基于内存的高性能key-value数据库。 2.Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性 ...
2018-07-08 21:30:30 236
转载 前向分步算法到AdaBoost
前向分步算法与AdaBoost有什么关系呢?除了都属于Boosting的模型,其实AdaBoost是当前向分步算法损失函数为指数损失时的特例。这篇就写一下推导的过程。前向分步算法 Forward Stagewise Additive Modeling初始化f0(x)=0f0(x)=0对于m=1,2,...,Mm=1,2,...,M (a)(βm,γm)=argminβ,γ∑i=1NL(yi,fm−...
2018-06-28 10:47:31 299
转载 二叉树的深度优先遍历与广度优先遍历
深度优先搜索算法(Depth First Search),是搜索算法的一种。是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。 如右图所示的二叉树:A 是第一个访问...
2018-06-13 16:09:34 190
原创 多线程{CPU密集型 && I/O密集型}
1.任务类型举例: 1.1: CPU密集型: 例如,一般我们系统的静态资源,比如js,css等,会存在一个版本号,如 main.js?v0,每当用户访问这个资源的时候,会发送一个比对请求到服务端,比对本地静态文件版本和服务端的文件版本是否一致,不一致则更新.这种任务一般不占用大量IO,所以后台服务器可以快速处理,压力落在CPU上. 1.2:...
2018-06-06 21:08:43 498
转载 网页请求从URL到返回数据
1、概要 从用户在浏览器输入域名开始,到web页面加载完毕,这是一个说复杂不复杂,说简单不简单的过程,下文暂且把这个过程称作网页加载过程。下面我将依靠自己的经验,总结一下整个过程。如有错漏,欢迎指正。 阅读本文需要读者已有一定的计算机知识,了解TCP、DNS等。2、分析 众所周知,打开一个网页的过程中,浏览器会因页面上的css/js/image等静态资源会多次发起连接请求,所以我们暂且把这个...
2018-06-06 16:01:56 1262
原创 84. Largest Rectangle in Histogram 柱状图中的最大矩形
LeetCode传送门求柱状图(Histogram)中的最大矩形(Largest Rectangle),是一道ACM比赛题,又是一道Leetcode题,还是一道经常被问的面试题。如下图所示,可以将柱状图表示为一个数组[2,1,5,6,2,3],每个柱子的宽度假设是一个单位。求出的最大的矩形应该如下斜线所示,大小是10。最容易想到的解法是brute forceclass Solution: ...
2018-05-31 12:59:13 2253
原创 86. Partition List
LeetCode传送门 一道比较基础,应该熟练掌握的链表题目。 题目给出一个链表 head 和一个 int 变量 x ,要求把链表中小于 x 的节点都放到大于 x 的节点的前面,并保持相对位置不变。show you the code , No bb。# Definition for singly-linked list.class ListNode: def __init__...
2018-05-29 20:19:12 141
原创 78. Subsets
LeetCode传送门 这道题要求输出一个 list 的全部子序列。 最开始想到的方法应该是回溯法,但是这里我们使用 动态规划 的思路来解决这个问题。 输入:[1, 2, 3] 假设我们已经得到了 [1, 2] 的结果 res2 = [[], [1], [2], [1, 2]], 那么对于res2 的 4 个结果, 数字 3 本身有两种可能,即输入,或者不输入,所以 res...
2018-05-24 21:53:23 182
转载 sql中exists,not exists的用法
exists : 强调的是是否返回结果集,不要求知道返回什么, 比如: select name from student where sex = 'm' and mark exists(select 1 from grade where ...) ,只要exists引导的子句有结果集返回,那么exists这个条件就算成立了,大家注意返回的字段始终为1,如果改成“select 2 from gra...
2018-05-18 10:54:04 231
原创 51. N-Queens
LeetCode传送门 这道题的要求是N皇后问题:放置n的皇后在n*n的棋盘上,使其任意两个皇后不能相互攻击。给定整数n,返回所有可能情况,其中‘Q’表示皇后,‘.’表示空位置。 两个皇后不能相互攻击,即要求这两个皇后不在同一行、同一列及同一斜线上。 我们使用一个 List 表示皇后位置,res[i] 代表第 i 行的 Queen 位置为 res[i]。这时,在检查当前位置的皇后...
2018-05-11 11:47:39 170
原创 63. Unique Paths II
LeetCode传送门 这道题是一道典型的动态规划问题,首先我们在 62. Unique Paths 中可以推得没有空点的情况下的 DP 公式: DP[i][j] = DP[i][j-1] + DP[i-1][j] 这里给出代码实现:#062class Solution: def uniquePaths(self, m, n): """ ...
2018-05-09 11:40:02 154
原创 56. Merge Intervals
Leetcode传送门 这道题要求合并有重复的区间。 解题思路: 1.首先将区间按 start 排序 2.遍历区间,如果区间2 的 start 大于区间 1的 end,那么就把区间 1 保存下来,否则,把区间1 和 2 合并为一个区间,并选择 1.end 和 2.end 中较大者为新区间的 end。show you the code:# Definition for an ...
2018-05-05 17:00:53 183
原创 递归问题的时间复杂度
笔试中经常会遇到计算时间复杂度的问题,其中大部分涉及到递归的问题。 例如:已知某程序的时间复杂度的递推公式为:T(n)=25T(n/5)+n^2,求T(n)? 解决此问题,首先需要知道主定理公式: 其实就是套用这个公式,多项式的小于(大于)在笔试中基本可以看出,即 : a^n > n^2 > n > logn 下面以两个实际问题来解释: ...
2018-05-05 15:22:37 591
原创 54. Spiral Matrix
Leetcode传送门 本题要求顺时针输出一个数组,同样出现在了剑指 offer 中(面试题29),解决思路较为简单,但是需要思考大量的临界值问题,通过画图后可以快速的理清思路,show you the code:#把一个数组顺序输出class Solution(object): def spiralPrint(self, matrix, start): #输出这一圈 ...
2018-05-03 17:04:45 148
转载 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 227
原创 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 139
原创 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
转载 常用的推荐算法解析
1. 前言随着互联网技术和社会化网络的发展,每天有大量包括博客,图片,视频,微博等等的信息发布到网上。传统的搜索技术已经不能满足用户对信息发现的需求,原因有多种,可能是用户很难用合适的关键词来描述自己的需求,也可能用户需要更加符合他们兴趣和喜好的结果,又或是用户无法对自己未知而又可能感兴趣的信息做出描述。推荐引擎的出现,可以帮用户获取更丰富,更符合个人口味和更加有意义的信息。个性化推荐根据用户兴趣...
2018-03-27 21:58:12 608 1
原创 由输出全排列引出的赋值问题
首先抛出最开始想解决的问题,即输出一个list型输入的全排列。Example: input : [1,2,3] output : [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 问题解决可以采用递归,即list[1,2,3]的全排列可以看做 1 加上list[2,3]的全排列 + 2 加上list[1,3]的全排列 + ...
2018-03-26 19:57:50 154
原创 redis 对于 key-value 的常用命令
set key value ,添加一个key-valueget key ,得到该key的valuedel key [key .. ] , 删除指定的一个或者多个key;dump key , 序列化(传输,保存时的样子)给...
2018-03-20 17:04:15 3237
转载 grep 介绍
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响
2017-12-01 17:23:30 301
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人