自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 问答 (2)
  • 收藏
  • 关注

原创 9.支撑向量机SVM

2019-01-17 12:13:51 360

原创 8. 评价和分类结果

2019-01-17 12:12:10 261

原创 7.逻辑回归

2019-01-17 12:08:59 218

原创 6. 多项式回归与模型泛化

2019-01-06 08:02:27 227

原创 8.装饰器的使用及问题解决技巧

一. 如何使用函数装饰器实际案例某些时候我们想为多个函数, 统一添加某种功能, 比如计时统计, 记录日志, 缓存运算结果等等。我们不想在每个函数内 一一 添加完全相同的代码, 有什么好的解决方案?解决方案# 使用缓存, 存储计算过的结果, 以减少递归次数, 避免重复计算问题def memo(func): cache = {} def wrap(*arg...

2018-11-04 17:18:32 255

原创 5.PCA与梯度上升法

2019-01-17 12:08:06 260

原创 4.梯度下降法

2019-01-07 08:33:48 262

原创 3. 线性回归算法

2019-01-07 08:29:11 187

原创 2. k近邻算法

一. k近邻算法基础(knn)knn算法简单的描述,就是新的数据 与 已知的多类型的数据 进行'距离'比较, 找出距离最近的k个数据 k个数据中, 占比最大的是哪种类型数据, 就把这新的数据 归类到这类数据中创建测试数据knn算法实现二. scikit-learn中机器学习算法封装将前一节的knn算法封装成函数import numpy as npfrom...

2018-12-25 15:55:00 305

原创 1. Jupyter Notebook、numpy的使用

一. Jupter Notebook中的魔法方法%run的使用加载不在项目包中的文件 项目中的包不使用%run, 使用python的import语法即可1. %run myscript/hello.py2. hello("balabala") # 这样就可以直接调用hello.py中的函数了%timeit的使用会先自动 把程序重复执行一定次数, 程序执行时间...

2018-12-23 10:23:09 2153

原创 9. 贪心算法

一. 贪心基础 Assign Cookies假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 g(i) ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 s(j) 。如果 s(j) >= g(i) ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的...

2018-12-17 13:25:05 231

原创 8. 动态规划基础

一. 什么是动态规划?通过使用递归、记忆化搜索、动态规划 三种方法 解 斐波那契数列问题, 来说明递归从上而下 但存在大量重复计算 举例: f(10)=f(9)+f(8) 与 f(9)=f(8)+f(7) 这里f(8)就被重复计算了#include <iostream>#include <ctime>using namespace std;int...

2018-12-15 12:00:10 216

原创 7. 递归和回溯法

一. 树形问题 Letter Combinations of a Phone Number给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd&

2018-12-06 12:43:58 187

原创 6. 二叉树和递归

一. 二叉树天然的递归结构给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。解题找出 递归终止条件 以及 递归调用过程...

2018-12-05 08:20:34 117

原创 5. 栈,队列,优先队列

一. 栈的基础应用 Valid Parentheses给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3...

2018-12-03 12:11:28 232

原创 4. 在链表中穿针引线

一. 链表, 在节点间穿针引线 Reverse Linked List反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?思路pre cur next 三个指针1. pre...

2018-12-02 12:08:16 284

原创 3. 查找表相关问题

一. set的使用 Intersection of Two Arrays给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]说明:输出结果中的每个元素一定是唯一的。我们可以...

2018-12-01 13:19:10 271

原创 2. 数组中的问题

一. Move Zeros例题给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。解法一#include <iostream>#include <vector&gt...

2018-11-30 10:24:57 195

原创 1. 时间复杂度分析

一. 对数据规模又一个概念想要在1s内解决问题:O(n2)的算法可以处理大约104级别的数据 O(n)的算法可以处理大约10^8级别的数据 O(nlogn)的算法可以处理大约10^7级别的数据 保险起见,在实际中最好降一个级空间复杂度递归调用是有空间代价的空间复杂度O(1):int sum1(int n){ assert(m >= 0); int ...

2018-11-19 14:22:40 451

原创 8. 最短路径

一. dijkstra 单源最短路径算法前提条件: 图中不能有负权边 复杂度O(E log(V)) 有向图和无向图都适用算法思路概念说明:松弛操作: 从0到1的最短距离, 上图中 0-1为 5, 但是0-2 + 2-1 为3 这样绕道而行更短, 则用0-2 + 2-1 的路径代替 0-1如上图所示, 起始点为0步骤1. 建立最小索引堆,存放对应点到0点的距离,...

2018-11-18 15:57:27 225

原创 7. 最小生成树

一. 有权图带权图即 在边上附加数据  表示方法对于邻接矩阵,只需将原来的true改为边上所附加的数据 对于邻接表,则以增加数据的方式表示 为了是邻接表和邻接矩阵接口统一, 边上的数据统一封装成Edge类。 邻接矩阵中0的地方,则以空指针表示代码实现邻接矩阵是g[w][v]存放Edge 邻接表是g[v]存放EdgeEdge.h#ifndef INC_...

2018-11-17 14:43:23 305

原创 6. 图的基础

一. 图的表示邻接矩阵(Adjacency Matrix)无向图: 0 - 1 / | 3 - 2 邻接矩阵: 0 1 2 3 ...

2018-11-16 19:37:19 188

原创 5. 并查集

一. 并查集基础并查集可以处理连接问题 数学中的集合类连接问题网络中节点间的连接状态这里网络是个抽象概念: 用户之间形成的网络二. Quick Find (实现第一版并查集)对于一组数据, 并查集主演支持两个操作:union(p, q) p和q并入同一个集合 find(p) p是属于哪个集合用来回答一个问题isConnected(p, q) p和q是否是同一个...

2018-11-11 17:07:54 144

原创 4. 二分搜索树

一. 二分查找法对于有序数列,才能使用二分查找法(排序的作用) 递归实现通常思维起来更容易, 但性能不如 while循环法代码#include <iostream>#include <cassert>#include <ctime>using namespace std;// 二分查找法,在有序数组arr中,查找target// 如果...

2018-11-10 16:02:31 189

原创 7. 多线程并发相关问题和解决技巧

一. 如何使用多线程实际案例https://intrinio.com/tutorial/web_api我们通过上述网站提供的API获取了股市信息的CSV数据,现在要下载大量CSV数据文件, 并将其转化为xml文件如何使用线程来提高下载并处理的效率?解决方案使用标准库 threading.Thread 创建线程,在每一个线程中下载并转换一只股票数据import re...

2018-11-02 11:21:53 381

原创 6. 类与对象深度深度问题与解决技巧

一. 如何派生内置不可变类型并修改其实例化行为?实际案例我们想要自定义一种新类型的元组, 对于传入的可迭代对象, 我们只保留作其中int类型且值大于0的元素, 例如:IntTuple([1, -1, 'abc', 6, ['x', 'y'], 3]) => (1, 6, 3)如何继承 内置 tuple 实现 IntTuple?原理class A: def ...

2018-10-22 21:41:18 181

原创 5. 数据读写与构建相关问题和技巧

一. 如何读写csv数据实际案例我们编写网络爬虫从豆瓣网爬取了一些书籍的信息, 以csv数据格式存储: '''书名, 作者, 出版社, 价格 精通scrapy网络爬虫,刘硕, 清华大学出版社, 46.00 算法导论,Charles E.Leiserson, 人民邮电出版社, 85.00 Python灰帽子,Justin Seitz, 电子工业出版社, 3...

2018-10-20 21:09:53 136

原创 4. 文件IO效率问题与解决技巧

一. 如何读写文本文件实际案列某文本文件编码格式(如UTF-8, GBK, BIG5), 在python2和python3 中分别如何读取该文件?原理字符串的语义变化python2 python3--------------------------str -> bytes unicode -> ...

2018-10-17 21:53:30 721

原创 3. 对象迭代与反迭代相关问题与解决技巧

一. 如何实现可迭代对象和迭代器对象实际案列某软件要求, 从网络抓取各个城市气温信息, 并依次显示: 北京: 15-20 天津: 17-22 长春: 12-18 ...如果一次抓取所有城市气温再显示, 显示第一个城市气温时, 有很高的延时,并且浪费存储空间, 我们期望以“用时访问”的策略, 并且能把所有城市气温封装到一个对象里, 可用for语句进行...

2018-10-13 21:57:40 153

原创 2. 复杂场景下字符串处理相关问题与解决方法

一. 如何判断字符串a是否以字符串b开头或结尾?实际案列某文件系统目录下有一系列文件:quicksort.cgraph.pyheap.javainstall.shstack.cpp编写程序给其中所有.sh文件 和 .py文件加上用户可执行权限解决方案使用str.startswith() 和 str.endswith() 方法(注意: 多个匹配时参数使用元组)...

2018-10-10 22:07:51 233

原创 1.数据结构与算法相关问题与解决技巧

一. 分割字符串问题已知字符串"ab;cd|efg|hi,jk1|mn\topq;rst,uvw\txyz", 其中的',' ';' '|' '\t' 都是分割符,如何处理?方法1、 连续使用str.splits = "ab;cd|efg|hi,jk1|mn\topq;rst,uvw\txyz"def my_split(s, seps): res = [s] fo...

2018-10-08 21:47:08 963

原创 3.堆和堆排序

一. 堆的基本存储关于堆这种数据结构的详细阐述,可以参看数据结构系列博文中的‘堆和优先队列’这篇博文。这里会阐述地更加简洁,会提供c++版本的堆实现代码。二. Shift Up向堆中添加元素对于最大堆, 新加入的元素, 如果大于它的父元素, 就和它的父元素互换位置。这步操作称为shift up。只要新元素的父节点比它大, 就会一直做shift up代码实现...

2018-08-07 21:19:53 184

转载 touch事件中的touches、targetTouches和changedTouches详解

touches: 当前屏幕上所有触摸点的列表;targetTouches: 当前对象上所有触摸点的列表;changedTouches: 涉及当前(引发)事件的触摸点的列表通过一个例子来区分一下触摸事件中的这三个属性:1. 用一个手指接触屏幕,触发事件,此时这三个属性有相同的值。2. 用第二个手指接触屏幕,此时,touches有两个元素,每个手指触摸点为一个值。当两个手指触摸相同...

2018-08-06 17:38:07 748

转载 html中offsetTop、clientTop、scrollTop、offsetTop各属性介绍

HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth scrollHeight: 获取对象的滚动高度。 scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 scrollWidth:获取对象的滚动宽度 offsetHeig...

2018-08-06 17:27:12 128

原创 2.高级排序算法

一. 归并排序法 - Merge Sort基本思想  归并排序(MERGE-SORT)   是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略   (分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 主要来观察一下分治的过程...

2018-08-04 22:47:43 176

原创 1. 排序基础

一. 选择排序法 - Selection Sort为什么要学习O(n^2)的排序算法?1. 是基础2. 编码简单,易于实现, 是一些简单情景的首选3. 在一些特殊情况下, 简单的排序算法更有效4. 简单的排序算法思想衍生出复杂的排序算法5. 作为子过程,改进更复杂的排序算法 选择排序 Selection Sort遍历每一个元素,每次遍历都找到被索引元素后面的最小元...

2018-08-03 07:19:41 248

原创 13.哈希表

一.哈希表基础1. LeetCode上387号问题给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2. 注意事项:您可以假定该字符串只包含小写字母。思路:我们用数组记录26个字符对应出现的次数, 然后按目标单词中字母顺序遍历,第一...

2018-07-31 21:43:37 309

原创 12.红黑树

一. 红黑树与2-3树 《算法导论》中的红黑树 1. 每个节点或者是红色的, 或者是黑色的2. 根节点是黑色的3. 每一个叶子节点(最后的空节点) 是黑色的4. 如果一个节点是红色的, 那么他的孩子节点都是黑色的5. 从任意节点到叶子节点,进过的黑色节点是一样的  红黑树与2-3树的等价性 理解了2-3树和红黑树之间的关系之后, 红黑树并不难学习2-3...

2018-07-28 22:05:41 381

原创 11.平衡树和AVL

一.AVL树AVL树是一种平衡树, 它由: 俄罗斯的计算机科学家G. M. Adelson-Velsky 和 E. M. Landis发明,故名为AVL 1962年的论文首次提出 是最早的自平衡二分搜索树结构平衡二叉树的定义: 叶子节点间的深度相差不超过1。例子: 线段树 满二叉树 完全二叉树对于AVL,我们会适当放宽平衡二叉树...

2018-07-25 21:38:19 143

原创 10.并查集

一. 什么是并查集应用1.网络中节点间的连接状态 - 网络是个抽象概念: 用户之间形成的网络2.数学中集合的实现 对于一组数据, 主要支持两个动作并:union(p,q) 查:isConnected(p,q) 接口UF.javapublic interface UF { int getSize(); boolean ...

2018-07-21 21:21:01 232

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除