自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 问答 (1)
  • 收藏
  • 关注

原创 双指针:三数之和

文章目录1、背景介绍2、解题思路2.1 证明双指针算法剪枝的合理性2.2如何去重3、源码分享1、背景介绍给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums =

2021-08-08 23:31:42 481

原创 双指针:盛水最多的容器

文章目录1、背景介绍2、解题思路2.1 证明双指针算法剪枝的合理性3、源码分享1、背景介绍n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。示例:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水的最大值为

2021-08-08 22:58:02 253

原创 动态规划:正则表达式匹配

文章目录1、背景介绍2、解题思路2.1状态转移方程2.2初始化3、源码分享1、背景介绍给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素示例 1:输入:s = “aa” p = “a”输出:false解释:“a” 无法匹配 “aa” 整个字符串。示例 2:输入:s = “aa” p = “a*”输出:true解释:因为 ‘*’ 代表可以匹配零个或多个前面的那一个元素, 在这里

2021-08-08 13:47:19 537

原创 C++滑动窗口

文章目录1、题意2、思路3、源码1、题意给定一个字符串s,找出其中不含有重复字符的最长子串的长度。例如输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。2、思路1)贪心从字符串中任意一个位置开始,向两端扩展,直到出现重复的,记录不重复的子串长度。以此方式从s的每个字符开始。2)滑动窗口使用两个指针L,R,R在右边,L在左边,【L,R】表示整个滑动窗口;从s第一个字符开始遍历,若未出现重复的字符,R向右移动,若出现重复的字

2021-07-21 21:40:01 1390

原创 加息和提高存款准备金的影响

文章目录1、加息和通货膨胀的关系2、提高存款准备金1、加息和通货膨胀的关系加息指的是央行提高了存款可得的利息数量,也就是存相同的钱,能拿到更多的利息,当这种无风险投资的收益提升时,市场上的钱趋向流入金融监管行业,从而导致市场上流通的货币减少,相对商品的数量增加,商品价格随供求关系影响下降,有效遏制了通货膨胀。相反降息,会造成无风险投资的收益率下降,人们更倾向将资金用于各种投资,此时市场的流通货币数量增加,相对商品数量减少,会造成货币泛滥而物价上升,出现通货膨胀。2、提高存款准备金存款准备金利率指的

2021-06-17 09:42:53 1324

原创 操作系统I/O详细分析

文章目录1、I/O总述1.1、I/O在系统层面发生的过程和性能评级1.2 性能瓶颈分析2、阻塞I/O3、非阻塞I/O1、I/O总述1.1、I/O在系统层面发生的过程和性能评级一次I/O的过程大体可以分为从磁盘读取本地数据,或者从网络端口读取远程数据,这两种I/O发生的过程类似,将数据流向作为分析的视角,第一种本地I/O的过程可以理解成,数据从磁盘被加载进内核态缓冲区,再被拷贝至用户态缓冲区;第二种远程I/O的过程和第一种本地I/O过程类似,唯一的区别是数据不再是从磁盘加载进内核缓冲区,而是从网络端口加

2021-06-06 23:38:29 478

原创 GitHub下载太慢解决方法

Github由于服务器在亚马逊云上,国内虽然没有将Github屏蔽,但是限速也已经足够让人抓狂,尤其是经常要找论文对应的代码时,别的还能百度,这个就真无解。下面记录解决方案。找出对应要提速的IPhttps://www.ipaddress.com/在这个网站上输入你要提速的...

2020-10-27 23:15:19 525

原创 python爬虫:检索B站视频提取弹幕构建词云

文章目录1、思路2、源码3、效果展示1、思路B站的视频弹幕由三层关键词可以锁定,第一层是检索的关键词,第二层是每个视频的bvid,第三曾是每个视频的oid,相关的获取API网上都有。爬虫使用的是request,构建词云使用的wordCloud,中间还嵌套使用了正则、数据分析部分内容。总体的思路是:根据关键词检索视频根据每个视频的标示bvid得到标示该视频弹幕的oid根据oid请求弹幕,并解析弹幕数据根据获取的弹幕数据构建词云2、源码#!/usr/bin/env python# -*

2020-07-26 11:17:51 913

原创 TensorFlow常用函数

文章目录1、constant2、convert_to_tensor3、批量创建张量4、生成随机数5、构建数据集6、gradient7、enumerate8、one_hot9、softmax10、assign_sub11、assign_sub12、argmax1、constant使用constant创建张量,这里创建了一个一阶张量,其中有两个元素1,5a=tf.constant([1,5],dtype=tf.int64)print(a)2、convert_to_tensor将numpy的数据类型

2020-07-20 23:18:49 288

原创 动态规划专栏(四):路径问题

文章目录1、背景介绍2、背景理解3、解题思路4、代码详解5、测试用例1、背景介绍给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。示例 1:输入: s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbcbcac”输出: true示例 2:输入: s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbbaccc”输出: false2、背景理解就字面意思理解,其实很简单,这里想讲的是关于它的扩展。我们

2020-07-19 00:45:11 395

原创 数据库系列综述

终于,伴随草稿箱中的内容清空,数据库相关的分享也告一段落了,其实笔记本中还有很多内容没有来得及分享,例如1)范式2)物理存储结构(Storage and File Structure)3)索引(Indexing and Hasing)4)并发控制(ConcurrencyControl)5)恢复(RecoverySystem)6)bigtable的master server、tablet详细介绍等等。没有分享的原因很多,时间来不及,掌握的程度不够,内容难度比较大(各种各样的数学符号输入太麻烦)

2020-07-08 00:06:47 1417

原创 数据库SQL(十二):分布式锁服务Chubby

文章目录一、概念二、用途三、体系结构四、文件结构五、访问接口六、一致性一、概念提供存储服务并为其他基础设施(GFS和Bigtable) 提供协调服务GFS使用Chubby选取master服务器,Bigtable使用chubby指定master服务器并发现、控制相关的子表服务器。提供粗粒度的分布式锁Advisory lock,不是mandatory lock锁持有时间可以长达几天提供一个文件系统,为小文件提供可靠存储,补充GFS提供的服务做Google内部的名字服务核心服务:提供分布式

2020-07-07 23:40:31 585

原创 数据库SQL(十一):Bigtable

文章目录一、诞生背景BigTable设计的动机与目标二、 BigTable的数据模型三、BigTable的数据模型-Rows四、BigTable的数据模型-Column Families五、BigTable的数据模型-timestamps六、Bigtable体系结构一、诞生背景BigTable设计的动机与目标动机需要存储的数据种类繁多、类型多样,例如URL.图片、文字、视频、html文件、用户设置数据等;需要处理海量的服务请求;商用数据库无法满足Google的需求,底层系统技术的掌控便于系统维

2020-07-07 23:28:26 1627

原创 数据库SQL(十):水平扩展及数据一致性

文章目录一、单机的一致性问题解决方案二、计算平台分类三、集群四、 I/O并行I/O并行技术(设节点数为n):五、分片六、复制主从复制对等复制七、数据分布倾斜(Data-Distribution skew)处理范围中分区倾斜八、 虚拟结点分区九、一致性HASH算法原理引入虚拟结点的一致性hash一、单机的一致性问题数据库读写速度受单机硬件的影响,硬盘的性能时影响读写的重要因素。解决方案纵向扩展提高单机的物理配置横向扩展添加更多的结点,节点之间用告诉网络连接,当需要更高的性能或更大的容量时,可

2020-07-07 23:12:26 802

原创 数据库SQL(九):NoSQL介绍

文章目录一、传统数据管理方法存在的问题二、NoSQL定义及特点三、NoSQL数据库中的数据一致性CAP理论四、主流NoSQL数据库类型一、传统数据管理方法存在的问题不擅长大量数据的写入操作解决方案:1)读写分离问题:更新的数据在两条服务器上会出现数据一致性问题2)读写分离,且操作匹配,不同的表操作分配给不同的数据库服务器3)不同的表分配给同的数据库服务器问题:跨服务器实现join非常困难。不擅长为数据更新时,更新索引、表结构更新时,需要加锁,数据访问受限制,高并发时性能受影响

2020-07-07 22:19:54 296

原创 数据库SQL(八):Functional Dependencies (函数依赖)

关系数据库设计的目标:决策一个特定的关系模式R是否是“好”的范式。如果R不是好的范式,则将R分解为{R1, R2, …, Rn},使得每一个子模式都是好的模式,而且分解是无损链接分解。过程中涉及理论是函数依赖理论和多值依赖理论。我们这里只讨论函数依赖。文章目录1、 Functional Dependencies1、 Functional Dependencies函数依赖是另一种完整性约束,对于消除数据冗余很重要,能够系统地改进数据库设计。一个关系模式R上的函数依赖,表示为:A1, A2, …, An

2020-06-20 23:26:22 9351 1

原创 阅读笔记:基于深度学习的图像预处理技术

文章目录文献名:主要创新思想主要原理剖析及说明主要实验结果(现有原文章中的)文献名:Fu R , Xu H , Wang Z , et al. Enhanced Intelligent Identification of Concrete Cracks Using Multi-Layered Image Preprocessing-Aided Convolutional Neural Networks[J]. Sensors, 2020, 20(7):2021.主要创新思想在不同的智能算法中,卷积神

2020-06-20 22:49:11 1116

原创 阅读笔记:Image based relighting using neural networks

文章目录文献名:主要创新思想主要原理剖析及说明主要实验结果(现有原文章中的)文献名:Peiran Ren, Yue Dong, Stephen Lin, Xin Tong, and Baining Guo. 2015. Image based relighting using neural networks. ACM Trans. Graph. 34, 4, Article 111 (August 2015), 12 pages.主要创新思想核心是提出的神经网络设计,其中包含各种元素,这些元素有助于

2020-06-20 22:44:48 660

原创 阅读笔记:Modeling surface appearance from a single photograph using self-augmented CNN

文章目录文献名主要创新思想主要原理剖析及说明主要实验结果(现有原文章中的)文献名Xiao Li, Yue Dong, Pieter Peers,. Modeling surface appearance from a single photograph using self-augmented convolutional neural networks[J]. acm transactions on graphics, 2017, 36(4):45.主要创新思想为了减少所需的标记训练数据量,利用嵌入

2020-06-20 22:42:12 366

原创 PyCharm集成Anaconda+Tensorflow步骤详解

文章目录一、Anaconda安装1、在Anaconda官网下载python3.7版本。2、从开始打开 Anaconda prompt,利用conda create -n TF python=3.7创建应该名为TF的环境。3、conda activate TF1.9(如果根据上面的步骤,应该是将TF1.9换成TF,个人命名),进入已经安装的环境。4、如果电脑支持GPU则进行以下操作二、TensorFlow安装1、下载TensorFlow三、安装PyCharm1、从官网下载pycharm社区版2、创建工程3、测

2020-06-08 19:33:34 1295 1

原创 数据库SQL(七):Relational Algebra(关系代数)

从本篇文章内容开始,逐渐深入探究高级数据库知识,内容难度有显著提升,我努力用最清楚的方式解释,量力而行。文章目录IntroductionSelect OperationProject OperationUnion OperationSet Difference OperationCartesian-Product OperationIntroduction关系代数的基本运算:union, intersection, selection, projection, Cartesian product 和r

2020-05-31 14:38:33 5882

原创 阅读笔记:Multi-model Databases: A New Journey to Handle the Variety of Data

Multi-model Databases: A New Journey to Handle the Variety of Data 是一篇发表在顶级SCI期刊 “ACM COMPUTING SURVEY”的杰出论文。论文篇幅很长,全文共38页,需要详细内容的可以评论私发。文章的核心词汇是“Multi-model Databases”。字面翻译是多模型数据库。为了避免因为误认而导致的对于读者时间的浪费,这篇文章的内容将会以论文的形式布局。CatalogsIntroductionPRELIMINARIES

2020-05-27 21:32:20 2237 3

原创 数据库SQL(六):Triggers(触发器)

文章目录1、what are triggers2、Example3、Triggering Events and Actions in SQL4、When Not To Use Triggers1、what are triggersA trigger is a statement that is executed automatically by the system as a side effect of a modification to the database. (insert, delete,

2020-05-24 20:08:17 4548

原创 数据库SQL(五):Integrity Constraints(完整性约束)

文章目录1、why2、what1、why为什么要有完整性约束呢?因为完整性约束可以保证用户修改数据库时不会破坏数据库的一致性,就是说不会将不满足应用需求的数据存入数据库。2、whatIntegrity Constraints are specified when schema is defined.Integrity Constraints are checked when relations are modified.也就是说,定义数据库schema的时候说明完整性约束,修改数据库表的时候检

2020-05-24 14:27:21 6905

原创 数据库SQL(四):Procedure(过程)

文章目录1、Definition2、特殊过程1、DefinitionSQL支持过程,同样先定义后调用。定义过程需要有过程名、输入参数和输出参数,分别用in和out关键字标识。语法如下SQL允许多个过程同名,只要参数个数不同。名称和参数个数用于唯一标识一个过程。SQL也允许多个函数同名,只要函数参数个数不同就可以。2、特殊过程这个例子完成查询:查找位于Watson大楼的所有院系的budget总和,其中n是局部变量,初始化为0,for循环执行查询,并做累加计算。可以将R看作游标。...

2020-05-24 12:38:33 1788

原创 数据库SQL(三):Function(函数)

文章目录1、Definition2、Example3、Table Function1、DefinitionSQL提供了类似高级语言的程序结构,如分支结构(if语句)、循环结构(while,for语句等)可以完成复杂的“业务逻辑”,并存储在数据库中,然后在SQL中调用。例如面对一些数据管理应用时,一些业务规则的定义,一些可以通过参数调用的功能实现等实现,这时可以用存储过程来实现。当规则发生变化时,可以不需要修改其它代码。当参数变化时,不需要重复写代码。2、Example函数定义形式如下函数要有函数

2020-05-22 21:27:22 6565

原创 数据库SQL(二):View(视图)详细

文章目录1、Definition1)视图产生的原因2)定义3)视图和普通查询的区别2、Example3、Materialized Views(物化视图)4、更新视图5、更新视图的原则(约束)1、Definition1)视图产生的原因In some cases, it is not desirable for all users to see the entire logical model (that is, all the actual relations stored in the databas

2020-05-21 22:08:20 1609

原创 数据库SQL(一):Join(外连接、内连接)

准备完成一份数据库的详细介绍,内容脱离某个具体的DBMS,以阐述数据库的思想为目的,内容将涵盖数据库高级技术中的绝大多数方面,敬请期待。文章目录JoinInner Join(natural join is equivalent to natural inner join)Left Outer JoinRight Outer JoinFull Outer JoinJoin首先明白一点,任何查询SQL的结果都是一个数据集。Join类型包括:inner join、outer join,outer join

2020-05-18 22:46:45 1698

原创 深究C++深拷贝/浅拷贝

目录1、什么是深\浅拷贝2、 何时要用到拷贝3、哪里要注意深浅拷贝4、为什么要注意深浅拷贝5、如何避免这个问题1、什么是深\浅拷贝假设现在有一片源内存空间,和一个待分配引用的目标对象内存空间,目的是给目标对象空间分配内存。而定义简而言之,深拷贝会复制源内存空间并重新生成一片内存空间,并将其引用给目标对象,而浅拷贝则正好相反,是直接将源内存空间引用给目标对象内存空间。2、 何时要用到拷贝C+...

2020-04-15 19:53:48 1433

原创 最简洁清晰的二叉树非递归遍历:(二)验证二叉搜索树

文章目录一、背景介绍二、解决思路三、源码一、背景介绍给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 ...

2020-03-16 22:25:05 262

原创 最简洁清晰的二叉树非递归遍历:(一)前中后序遍历

文章目录一、前序非递归遍历1、算法思路2、源码二、中序遍历1、算法思路2、源码三、后序遍历1、算法思路2、源码四、完整Demo一、前序非递归遍历1、算法思路利用栈先进后出的特性,在一个有三个结点的子树中,先对根节点做出操作,再将右子树结点入栈,再将左子树结点入栈,这样利用栈遍历的顺序就是根----左-----右(因为根已经最先处理)。思路比较简单,直接看源码即可理解。2、源码 void...

2020-03-16 22:12:39 179

原创 大道至简的算法:前缀树

文章目录一、概念介绍二、前缀树数据结构详解三、详细代码一、概念介绍Trie (发音为 “try”) 或前缀树是一种树数据结构,用于检索字符串数据集中的键。这一高效的数据结构有多种应用:自动补全拼写检查IP 路由 (最长前缀匹配)T9 (九宫格) 打字预测单词游戏二、前缀树数据结构详解class Trie {private: //表示是否已经到...

2020-03-09 23:18:43 308

原创 序列化之二叉树

文章目录一、背景介绍二、思路简述三、代码示例四、补充知识点一、背景介绍序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。你可以将以下二叉树: 1 / \ 2 3 / \4 5序列化为 “[1,2,3,null,null,4,5]...

2020-03-09 21:19:58 488

原创 深究字符串压缩:原地压缩+哈夫曼压缩(一)

深究字符串压缩系列一共两大部分,会分别阐述原地压缩算法和哈夫曼算法本文主要内容是原地压缩算法。文章目录一、算法介绍二、算法思想三、算法详解四、补充内容一、算法介绍如果有一个字符串[a,a,a,b,b,c],如果直接这样存储,需6个空间,但如果将其压缩成[a,3,b,2,c]则只需要5个空间,这样就实现了一次压缩。而在压缩的过程中,不再多使用别的内存空间,又将这种算法称为原地压缩算法。二、...

2020-03-04 22:46:00 449

原创 深入理解c++多线程:(一)detach使用隐患

文章目录一、其他构造线程的方法二、使用detach的隐患三、结论一、其他构造线程的方法c++线程,除了可以利用普通函数创建线程外,还有其他创建线程的方法:类对象Lambda表达式具体使用方法如下:#include <thread>using namespace std;class TA{public: void operator ()() { pri...

2020-03-01 21:41:12 3153

原创 动态规划专栏(三):滑动窗口最大值

这道以前认为的难题,今天花了十分钟不到就KO了,纪念下。。。文章目录一、题目概要二、题目理解三、解题思路一、题目概要给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: ...

2020-02-27 20:52:36 1325

原创 LRU缓存机制实现(cpp版)

文章目录一、概念二、算法描述三、算法思想四、代码及具体思路一、概念计算机的缓存容量有限,如果缓存满了就要删除一些内容,给新内容腾位置。但问题是,删除哪些内容呢?我们肯定希望删掉哪些没什么用的缓存,而把有用的数据继续留在缓存里,方便之后继续使用。那么,什么样的数据,我们判定为「有用的」的数据呢?LRU 缓存淘汰算法就是一种常用策略。LRU 的全称是 Least Recently Used,即最...

2020-02-25 22:13:42 682

原创 动态规划专栏:(二)最长回文串

文章目录一、题目概要二、题目理解三、解题思路一、题目概要给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”二、题目理解分析题目时思考用什么方法,最长回文串由一个个短回文串组成,这种利用之前的解来帮助后面的问...

2020-02-19 21:55:24 260

原创 深入学习C++智能指针:(二)weakptr

文章目录一、引用博客二、总结一、引用博客这篇关于weakptr的文章很实在,点击跳转二、总结weak_ptr 在功能上类似于普通指针, 然而一个比较大的区别是, 弱引用能检测到所管理的对象是否已经被释放, 从而避免访问非法内存。注意: 虽然通过弱引用指针可以有效的解除循环引用, 但这种方式必须在程序员能预见会出现循环引用的情况下才能使用, 也可以说这个仅仅是一种编译期的解决方案, 如果程...

2020-02-19 21:12:04 267

原创 动态规划专栏:(一)编辑距离

LeetCode72. 编辑距离一、题目描述给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入: word1 = “horse”, word2 = “ros”输出: 3解释:horse -> rorse (将 ‘h’ 替换为 ‘r’...

2020-02-12 22:50:04 349

空空如也

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

TA关注的人

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