随笔分类 - 算法与数据结构
摘要:1.介绍 爬虫采集了大量的文本数据,如何进行去重?可以使用文本计算MD5,然后与已经抓取下来的MD5集合进行比较,但这种做法有个问题,文本稍有不同MD5值都会大相径庭, 无法处理文本相似问题。另一种方式是本文要介绍的SimHash,这是谷歌提出的一种局部敏感哈希算法,在吴军老师的《数学之美》里也有介
阅读全文
摘要:一.计算机编码 计算机编码有很多方式,比如我们非常熟悉的ASCII码,它将每个字符编码成同样长度的码值(一个字节),但是实际上每个字符,出现的频率是不一样的,比方说e出现的频率要大于很多字符的频率,如果能将这些常见字符的编码缩短,而不太常见的字符编码可以适当增长,那么显然有助于优化存储空间。 二.判
阅读全文
摘要:主元素1: 这道题是编程之美上的一道原题,如果题目未对时间复杂度有严格要求的话可以先排序,再取中位数。 本题中要求算法达到时间复杂度为O(n),空间复杂度为O(1),算法如下: 基本思想是每次删除使两个不同的数字两两“抵消”,每次剩下的元素中主元素的次数仍然应该超过总个数的一半,不断重复此过程。 这
阅读全文
摘要:除特别注明外,本站所有文章均为原创,转载请注明地址 一.优先队列的应用 优先队列在程序开发中屡见不鲜,比如操作系统在进行进程调度时一种可行的算法是使用优先队列,当一个新的进程被fork()出来后,首先将它放到队列的最后,而操作系统内部的Scheduler负责不断地从这个优先队列中取出优先级较高的进程
阅读全文
摘要:Two Sum 1 首先,暴力解法也就是遍历数组中的每个数字,在数组中寻找target-当前数字,显然时间复杂度比较高,这是一个O(n²)的算法,而在上述代码中我们使用了一个map以O(n)的空间换时间,由于map的put和contains都是O(1)复杂度的操作,算法的时间复杂度为O(n)。 Tw
阅读全文
摘要:之前学习了Cousera上华盛顿大学的机器学习课程,近期准备整理当时的学习笔记。本篇总结是基于该专项课程中第一篇的内容 分类算法: 1.分类算法实际用途:情感分析等,比如分析餐馆的评论,根据某个人的评论内容推测他对餐馆的评分;又如根据网页文本预测网页标签(如金融,教育,科技等) 垃圾邮件过滤(Spa
阅读全文

浙公网安备 33010602011771号