自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 leetcode刷题目录

目录 文章目录时间复杂度数组查找表链表栈和队列二叉树和递归递归与回溯动态规划贪心算法 画解剑指offerhttps://leetcode-cn.com/leetbook/detail/illustrate-lcof/ 时间复杂度 数组 283 Move Zeros 75 颜色分类(三路快速排序) 167 两数之和II-输入有序数组(对撞指针) 209 长度最小的子数组(滑动窗口)-sxl 3 无重复字符的最长子串(滑动窗口)√ 26 删除排序数组中的重复项 27 移除值等于val的元素 80

2021-05-01 20:07:02 275

原创 数组中的问题

数组中的问题 关于数组 1、数组应用场景 排序:选择排序、插入排序、归并排序、快速排序 查找:二分查找 数据结构:栈、队列、堆 2、如何写出正确的程序 明确变量和含义;循环不变量;小数据量调试 举例:二分查找法:找中间,再往左或右序列中寻找。 对于有序数列,才能使用二分查找法 public static int binarySearch(Comparable[] arr, int n, Comparable target){ int l = 0, r = n - 1; // 在[l..

2021-05-01 20:05:47 224

原创 120.64.139.494.376.213.337.309.279.91.62.322.377.474

文章目录T170Climbing StarisT343.Integer BreakT198T120T64139.494.目标和213.打家劫舍337.打家劫舍3309.最佳买卖股票时机含冷冻期T279.完全平方数T91.解码方法,分割整数问题T62.不同路径322.兑换零钱377.给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数。474.一和零01背包T416.分割等和子集T300 .给定一个无序的整数数组,找到其中最长上升子序列的长度。T376最长公共子序列LCS T170C

2021-05-01 20:02:44 651

原创 线段树

线段树(区间树) 1、基础 为什么使用线段树? 对于有一类问题,我们关系的是线段(区间)。 如区间染色问题:有一面墙,长度为n,每次选择一段进行染色,m次操作后,可以看见多少种颜色?可以在[i,j]区间内看见多少种颜色? 使用数组 使用线段树 染色操作(更新区间) O(n) O(logn) 查询操作(查询区间) O(n) O(logn) 区间查询问题:查询[i,j]区间的最大值,最小值,或者区间数字和。基于区间的统计查询。有更新和查询这个操作。区间是固定的,区间元素可能发生变化。

2021-02-23 20:46:45 198

原创 Trie

Trie 1、Trie字典树(前缀树) 字典:映射;Trie专门用来处理字符串 字典:如果有n个条目,使用树结构,查询的时间复杂度是O(logn) Trie:查询每个条目的时间复杂度,和字典中一共有多少条目无关。O(w),w为查询单词的长度。 每个节点有若干个指向下个节点的指针,考虑不同的语言、不同的情景,如英文有26个指针。 class Node{ ​ char c;//可以不存储 ​ Map<char,Node> next; }-----------》 class Node{ ​

2021-02-23 20:44:49 140

原创 交叉验证

交叉验证 一些概念 模型产生包括模型训练和模型验证。 模型验证&模型测试:模型验证时模型产生阶段的步骤。测试则是发生在原型产生阶段之后。 什么是交叉验证 首先交叉验证区别于参数调优。交叉验证是产生训练数据集和验证数据集的方法。 K折交叉验证,是交叉验证最常用的一种方法: 1)先将数据集划分成k个数据集。 2)对于每一种超参数, 依次使用其中的k-1个数据集来训练数据,并用保留的验证集来验证模型。 3)模型的总体表现取所有k次验证的平均值。 使用sklearn库进行交叉验证 为什么使用交叉验证 1

2021-02-22 21:50:46 318

原创 堆和优先队列

堆和优先队列 优先队列:出队顺序和入队顺序无关;和优先级相关。需要定义什么是优先级。 优先队列实现:PriorityQueue implement Interface Queue void enqueue(E) E dequeue() E getFront() int getSize() boolean isEmpty() 可以使用不同的底层实现: 实现结构 入队 出队(拿出最大元素) 普通线性结构 O(1) O(n) 顺序线性结构 O(n) O(1) 堆 O(logn) O(l

2021-02-21 21:17:17 164

原创 特征选择方法

特征选择方法 为什么进行特征选择 1、去除不相关或冗余特征 2、减少过拟合,提高泛化能力,缓解维度灾难 3、提高模型准确率,加快模型训练速度 相关特征:对于学习任务(例如分类问题)有帮助,可以提升学习算法的效果; 无关特征:对于我们的算法没有任何帮助,不会给算法的效果带来任何提升; 冗余特征:不会对我们的算法带来新的信息,或者这种特征的信息可以由其他的特征推断出 特征选择方法 一、Filter 描述:按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征 具体方法: 方差

2021-02-21 21:16:36 501

原创 特征工程

特征工程 选择数据(Select Data): 整合数据,将数据规范化成一个数据集,收集起来. 数据预处理(Preprocess Data): 数据格式化,数据清理,采样等。 数据转换(Transform Data):这个阶段做特征工程。 设计特征:自动特征提取或手工构造 选择特征:使用不同的特征选择方法进行特征选择 特征监控 特征有效性分析:特征重要性(权重) 监控重要特征,防止特征质量下降 数据建模(Model Data): 建立模型,评估模型并逐步优化。 预处理过程 单个

2021-02-21 20:52:55 144

原创 集合和映射

集合和映射 集合 1、集合 元素只存在一次,进行去重操作。 二分搜索树不能盛放重复元素,所以是非常好的实现“集合”的底层数据结构。 void add(E),不能添加重复元素 void remove(E) boolean contains(E) int getSize() boolean isEmpty() 典型应用:客户统计、词汇量统计 基于二分搜索树的集合的实现: public class BSTSet<E extends Comparable<E>> implements S

2021-02-20 19:00:55 406

转载 如何提高机器学习模型预测准确率

如何提高机器学习模型预测准确率 转载:https://zhuanlan.zhihu.com/p/25013834 这篇文章主要从工程角度来总结在实际运用机器学习进行预测时,我们可以用哪些tips来提高最终的预测效果,主要分为Data Cleaning,Features Engineering, Models Training三个部分。 Data Cleaning 移除多余的duplicate features(相同或极为相似的features) 移除constant features(只有一个val

2021-02-17 21:04:29 4855

原创 Boosting

Boosting 集成学习有boosting和bagging两种方法 Boosting算法是将“弱学习算法“提升为“强学习算法”的过程。将众多弱学习器组合得到一个强学习器。简单来说,就是加法模型(组合基分类器)+前向分布算法(一个接一个训练基分类器)。 boosting与bagging的区别 1)样本选择上: Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。 Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮

2021-02-17 20:55:14 266

原创 机器学习之聚类

机器学习之聚类 聚类 1、聚类方法有哪些(常用) 划分方法: ​ 描述:分裂法构造K个分组。 ​ K-means算法 层次方法: ​ 描述:对给定的数据集进行层次似的分解,直到某种条件满足为止。 ​ DIANA、BIRCH、Chameleon 基于密度的方法: ​ 描述:基于密度的方法与其它方法的一个根本区别是:它不是基于各种各样的距离的,而是基于密度的。只要一个区域中的点的密度大过某个阈值,就把它加到与之相近的聚类中去。 ​ DBSCAN算法、OPTICS算法 模糊聚类: ​ EM算法 基于模型的方法:

2021-02-17 20:51:26 592

原创 欠拟合与过拟合

欠拟合与过拟合 什么是欠拟合? 模型学习能力不足,无法学习到数据集中的“一般规律”,导致泛化能力弱。 欠拟合解决办法: 1)添加其他特征项,有时候我们模型出现欠拟合的时候是因为特征项不够导致的,可以添加其他特征项来很好地解决。例如,“组合”、“泛化”、“相关性”三类特征是特征添加的重要手段,无论在什么场景,都可以照葫芦画瓢,总会得到意想不到的效果。除上面的特征之外,“上下文特征”、“平台特征”等等,都可以作为特征添加的首选项。 2)添加多项式特征,这个在机器学习算法里面用的很普遍,例如将线性模型通过添加二

2021-02-17 20:25:43 351

原创 二分搜索树

二分搜索树 1、为什么要有树结构 树结构本身是一种天然的组织结构;高效 二分搜索树、平衡二叉树:AVL and 红黑树 、堆、并查集、线段树、Trie 2、二分搜索树基础 二叉树:和链表一样,动态数据结构 class Node{ ​ E e; ​ Node left,right; } 二叉树具有唯一根节点,每个节点最多有两个孩子。 二叉树具有天然递归结构:每个节点的左子树和右子树也是二叉树。 二叉树不一定是“满”的,一个节点也是二叉树,空也是二叉树。 二分搜索树:是二叉树且每个节点的值大于

2021-02-16 18:15:56 145

原创 链表和递归

链表和递归 1、LeetCode—203 删除链表元素 不使用虚拟头结点: public class Solution203 { public ListNode removeElements(ListNode head, int val) { while(head!=null&&head.val==val) { ListNode delNode=head; head=head.next; delNode.next=null; } if(head==null)

2021-02-14 16:11:19 227

原创 常用类

常用类 包装类 1、包装类作为和基本数据类型对应的类型存在,方便涉及到对象的操作。 作用:提供了基本数据类型、字符串、包装类之间的转换。 // 基本类型转化成Integer对象 Integer int1 = new Integer(10); Integer int2 = Integer.valueOf(20); // 官方推荐这种写法 // Integer对象转化成int int a = int1.intValue(); / 字符串转化成Integer对象 Integer int3 = Integer.pa

2021-02-09 19:12:12 127

原创 Java面向对象

面向对象 一、java面向对象基础 1、面向对象和面向过程 二者相辅相成。宏观上使用面向对象把握,微观处理上仍然是面向过程。 面向过程:一步一步的做;适合简单、不需要协作的任务,比如“如何造车”列出1234这样的步骤是不可能的,需要协作才能完成。 面向对象:考虑的是“车怎么设计”而不是“怎么按步骤造车”。 2、对象的理解—本质上是一种数据组织方式 比如,我们的一个学生对象: 有属性(静态特征):年龄:18,姓名:高淇,学号:1234 也可以有方法(动态行为):学习,吃饭,考试 3、类和对象 对象是具体的事物

2021-02-09 19:11:05 320 2

原创 数组

数组 1、数组概述 (1)长度是确定的。数组一旦被创建,它的大小就是不可以改变的。 (2) 其元素必须是相同类型,不允许出现混合类型。 (3)数组类型可以是任何数据类型,包括基本类型和引用类型。 2、数组声明 type[] array_name;或type array_name[]; 给数组分配空间:int[] s=null; s=new int[10];//给数组分配空间 3、初始化 //静态初始化 int[] a={1,2,3} //动态初始化 int[] a1=new int[2] a1[0]=

2021-02-09 19:08:59 173

原创 java基础

java基础 一、学习建议 干!知识体系建立为第一目标。遇到难点不纠结,一个月后再回来看难点。 二、关于Java 1、java三个版本 java三个版本:JavaSE(标准版,个人电脑);JavaEE(企业版,定位在服务器);JavaME(微型版,消费性电子产品) 2、java特性和优势 核心优势:跨平台 其他优势:安全性、面向对象、简单、高性能、分布式、多线程 3、java应用程序的运行机制 编译型语言 java源程序.java,利用javac编译成字节码文件.class;最后利用虚拟机

2021-02-09 19:07:30 218 3

原创 链表:动态数据结构

链表:动态数据结构 1、什么是链表 动态数组、栈和队列:底层依托静态数组;靠resize解决固定容量问题 链表: 真正的动态数据结构。不需要处理固定容量的问题。但是丧失了随机访问的能力。 更深入的理解引用(或者指针);更深入的理解递归。 辅助组成其他数据结构。 class Node{ ​ E e; ​ Node next; } public class LinkedList<E> { private class Node{ public E e; public Nod

2021-02-08 19:29:35 293

原创 列表样式&表格样式

列表样式&表格样式 列表样式 1、list-style-type 在CSS中,不管是有序列表还是无序列表,都统一使用list-style-type属性来定义列表项符号。 list-style-type属性值 说明 decimal 默认值,数字1、2、3…… lower-roman 小写罗马数字i、ii、iii…… upper-roman 大写罗马数字I、II、III…… lower-alpha 小写英文字母a、b、c…… upper-alpha 大写英文字母A、B、C

2021-02-06 17:53:58 499

原创 超链接样式&图片样式

超链接样式&图片样式 超链接样式 1、去除超链接下划线 text-decoration:none 2、定义超链接伪类 a:link{CSS样式} a:visited{CSS样式} a:hover{CSS样式} a:actived{CSS样式} 属性 说明 a:link 定义a元素未访问时的样式 a:visited 定义a元素访问后的样式 a:hover 定义鼠标经过显示的样式 a:active 定义鼠标单击激活时的样式 定义这四个伪类,必须按照“link、vi

2021-02-06 17:53:00 1028

原创 边框样式&背景样式

边框样式&背景样式 边框样式 1、边框属性 属性 说明 border-width 边框的宽度 border-style 边框的外观 border-color 边框的颜色 border-style: 属性值 说明 none 无样式 hidden 与“none”相同。bug应用于表除外。对于表,hidden用于解决边框冲突 solid 实线 dashed 虚线 dotted 点线 double 双线,双线的宽度等于border-width值

2021-02-06 17:52:25 221

原创 CSS基础

CSS基础 CSS 1、css是什么? 是用来控制网页的外观的一门技术。 2、css和css3 CSS3是CSS的升级版本。 css入门、进阶和css3 使用visual studio 3、CSS的三种引入方式 (1)外部样式表 当样式需要被应用到多个页面时,外部样式表是最理想的选择。 <head> <link href="index.css" rel="stylesheet" type="text/css" /> </head> (2)内部样式表 <he

2021-02-06 17:51:50 137

原创 图像&超链接&多媒体

图像&超链接&多媒体 图像 1、图像标签img <img src="图片地址" alt="图片描述(给搜索引擎看)" title="图片描述(给用户看)"> 属性 说明 src 图像的文件地址 alt 图片显示不出来时的提示文字 title 鼠标移到图片上的提示文字 2、相对路径和绝对路径 对于一个网站而言,外部文件或图片的引用都是使用相对路径,几乎不用绝对路径。 3、图片格式 (1)位图 位图分为8位、16位、24位和32位。在制作页面的时候,

2021-02-06 17:47:41 436

原创 列表与表格

列表与表格 列表 1、概述 类型:有序列表、无序列表、自定义列表 2、有序列表 <ol> <li>有序列表项</li> <li>有序列表项</li> <li>有序列表项</li> </ol> type属性值 列表项的序号类型 1 数字1、2、3…… a 小写英文字母a、b、c…… A 大写英文字母A、B、C…… i 小写罗马数字i、ii、iii…… I 大

2021-02-06 17:47:14 191

原创 段落与文字

段落与文字 静态页面绝大部分由4类元素组成:文本、图形、多媒体文件(视频音频)和超链接。 1、标题标签 h1~h6标题标签的级别越高,字体越大。 2、段落标签 段落标签:<p></p> 换行标签:<br/> 3、文本格式化标签 文本格式化标签 语义 说明 strong(加强) 加粗 emphasized(强调) 斜体 cite(块引用) 斜体 superscripted(上标) 上标 subscripted(下标) 下标

2021-02-06 17:46:34 115

原创 表单

表单 1、form标签 form属性: (1)表单名称name,区分表单 (2)提交表单action,action用于指定表单数据提交到哪个地址进行处理。 (3)传送方法method,这两种方式的区别在于,get在安全性上较差,所有的表单域的值直接显示出来。而post除了只有可见的处理脚本程序之外,其他的信息都可以隐藏。所以实际的开发当中通常都选择post这种处理方式。 method属性值 说明 get 默认值,表单数据被传送到action属性指定URL,然后这个新URL被送到处理程序上

2021-02-06 17:45:41 136

原创 HTML基础

HTML基础 1、HTML是什么? 全称“Hyper Text Markup Language(超文本标记语言)”,它是制作万维网页面的标准语言。 学习HTML就是学习各种标签,然后针对你想要的内容来使用相应的标签; HTML标签即“HTML元素”; 2、HTML基本结构 <!DOCTYPE HTML> <html> <head></head> <body></body> </html> 3、head标签(6种

2021-02-06 17:43:01 176

原创 栈和队列

栈和队列 栈 1、栈和栈的应用:撤销操作和系统栈 基础:栈也是一种线性结构;相比数组,栈对应的操作是数组的子集;只能从栈顶添加或取出元素。; ​ 后进先出(LIFO)。 应用: Undo操作(撤销) 程序调用的系统栈 2、栈的实现: Stack void push(E) E pop() E peek() int getSize() boolean isEmpty() 结合Array动态数组实现栈:ArrayStack,重写Array类中的getSize()、isEmpty等方

2021-02-06 17:37:23 179

原创 数据分析可视化-matplotlib

数据分析可视化-matplotlib 1、figure 属性:color,linewidth,linestyle 2、设置坐标轴 plt.xlim设置坐标轴范围 plt.xlabel设置坐标轴名称 plt.xticks设置x轴刻度 使用ax=plt.gca获取当前坐标轴信息. 使用ax.spines设置边框;使用.set_color设置边框颜色:默认白色; ax.xaxis.set_ticks_position设置x坐标刻度数字或名称的位置 ax.spines[‘bottom’].set_position(

2021-02-01 21:36:59 207

原创 Python数据分析常用包-pandas

Python数据分析常用包-pandas 读者需知:本文为个人实践过程中的总结记录,当中有未知变量名为当时实践时使用。 一、数据结构 以numpy为基础,基于matplotlib可以简单画图。 ​ 数据处理能力强 三大数据结构 ​ Series(一维);DataFrame(二维);Panel DataFrame stock_df=pd.DataFrame(stock_day_rise) (1) 索引:行索引(index,axis=0)和列索引(columns,axis=1) 增加行索引

2021-02-01 21:11:36 661

原创 Numpy

Numpy 1、numpy优势: 速度:运算速度快 在哪里:内存分布连续;实现并行化运算。 2、ndarray: 相同类型数据集合;n维数组 (1)属性:a.shape(形状);a.ndim(维度);a.size(元素的数量);a.itemsize(每个元素占得位数);a.flags。 (2)形状:(4,)表示一维数组,有四个元素;(2, 2, 3)表示三维数组,如:b=np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])。 (3)类型:可以指定类型dtype

2021-02-01 21:10:55 120

原创 数据分析与挖掘概述

数据分析与挖掘概述 相关库: Scipy(矩阵计算)、StatsModels(统计建模和计量经济学)、Gensim(文本主题)、sklearn、keras 一、数据探索 1、数据质量分析 缺失值:删除、对可能值进行插补、不处理 异常值分析:简单统计量分析(min,max);偏差超过3倍标准差的值;箱型图分析 一致性分析 2、数据特征分析 (1)分布分析 定量数据的分布分析 频率分布直方图 定性数据的分布分析 饼图或条形图 (2)对比分析 (3)统计量分析 集中趋势:均值、中位数、众数 离中趋势:极差

2021-02-01 21:09:58 241 1

原创 Python数据结构

Python数据结构 python基础 Six库封装python2和python3之间的差异性 尽量使用UTF-8;文件头部指定的编码方式与文件保存编码方式一致。 2、ipython cmd直接进入,输入ipython 魔术命令:%timeit [x for x in range(10)] ;%time ; %rest ;%rn *.py(在IPython中执行python脚本) 3、IDE环境: eclipse+pyDev;pycharm不涉及web开发; 4、python_basic 类型转

2021-02-01 20:57:19 126

原创 数组

数组 一、数组基础 1、数组:把数据码成一排进行存放 最大的优点:快速查询 数组最好应用于“索引有语义”的情况,可以方便查询或修改。但不绝对。 2、二次封装数组 需要实现:增、删、改、查 (1)向数组添加元素 向末尾添加元素 public void addLast(int e) { if(size==data.length) throw new IllegalArgumentException("AddLast failed"); data[size]=e; size++; } 向指

2021-02-01 13:04:08 131

原创 第一章

数据结构 (一)关于数据结构…… 数据结构无处不在 数据库 树结构:AVL;红黑树;Treap;伸展树;B树 哈希表 操作系统 栈、堆(优先队列) 文件压缩 哈夫曼树 通讯录 trie-前缀树 常见的12中数据结构 数组、栈、队列、链表、二分搜索树、堆、线段树、Trie、并查集、AVL、红黑树、哈希表 ...

2021-02-01 13:01:18 86

空空如也

空空如也

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

TA关注的人

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