自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 经典算法题:字典树、并查集、单调栈、二分、带标记函数dp、树、全排列、字符串问题等常用算法

1.字典树字典树,又称 Trie 树,是一种树形结构。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串)。主要思想是利用字符串的公共前缀来节约存储空间。在实际运用中,比如我们要储存大量的单词在一个文本中,而且还要查找某个单词是否存在,如果存在,请输出出现了多少次。考虑到有大量的单词而且还要询问出现了多少次,考虑到无法用字符串直接存储并进行遍历,所以就有了字典树这种高级数据结构。字典树的主要思想是利用字符串的公共前缀来节约存储空间。如上图所示,从根节点开始到每一个红色标记(end.

2020-11-01 21:45:31 394

原创 几种排序与最大K问题

1.快排void quickSort(int *pArray,int begin,int end){ if (begin<end){ int left = begin; int right = end; int pivot = pArray[begin]; while (left<right){ ...

2019-05-07 21:09:36 691

原创 HIT计网笔记

一、实践课笔记1. 路由器连接的是两个不同的网络,交换机连接的是同一个网络。路由器负责在不同网段转移数据,交换机看mac地址,路由器看ip地址。2. 子网掩码可以分离出IP地址中的网络地址和主机地址,同一个网络的网络地址相同,路由器的地址一般为该网络地址xxxx.13. 路由器、主机在出厂的时候在网卡里都有固定MAC地址,计算机--ip地址,网卡--mac地址。4. 数据包与数...

2019-03-03 20:15:25 484

原创 常见算法复习整理1

数据结构笔记1.迭代与递归递归过程中的递归因子本身可以被忽略(被计入它自己的过程中了)递归跟踪、递推方程。递归基减而治之:Decrease and Conquer 线性递归的模式 T(n) = T(n-1)+ O(1)分而治之:Divide and Conquer 一般出现log(n)都是要用分治法。这两个都是分治法。动态规划算法与分治法最大的差别是:适合于用动态规划...

2019-02-25 22:34:47 436

原创 浏览器上请求URL的全部过程

分为六步1. 域名解析  浏览器首先要做去获得想访问网页的IP地址,浏览器会发送一个UDP的包给DNS域名解析服务器。DNS就会返回给我们百度的IP地址,通常来说浏览器会把访问过的网站的IP保存下来,这样下次访问的时候就会快很多,能够节省很多时间。  通常来说在解析域名的时候,浏览器就会先看看自己本地的host文件,来看看里边有没有和域名对应的IP地址,如果有就直接使用,如果没有的话浏览器就会发送一个请求到本地的DNS服务器,本地的DNS服务器一般来说都是由网络接入商提供的,比如中国电信等。当本地的D

2021-03-26 19:43:22 1988

原创 计算器、中文转数字

1.字符串转整数string s = "458";int n = 0;for (int i = 0; i < s.size(); i++) { char c = s[i]; n = 10 * n + (c - '0');}// n 现在就等于 4582.处理加减法我们拿字符串算式1-12+3为例,来说一个很简单的思路:1、先给第一个数字加一个默认符号+,变成+1-12+3。2、把一个运算符和数字组合成一对儿,也就是三对儿+1,-12,+3,把它们转化成数

2021-03-10 21:20:45 442

转载 为什么使用Deque而不使用Stack构造栈

为什么使用Deque而不使用Stack构造栈Class Stack<E> java.lang.Object java.util.AbstractCollection<E> java.util.AbstractList<E> java.util.Vector<E> java.util.Stack<E> 实现的所有接口 Serializable.

2021-01-02 15:51:03 993

转载 转载_递归树求递归算法的时间复杂度

递归算法时间复杂度的计算方程式一个递归方程:    在引入递归树之前可以考虑一个例子:  T(n) = 2T(n/2) + n2  迭代2次可以得:  T(n) = n2+ 2(2T(n/4) + (n/2)2)  还可以继续迭代,将其完全展开可得:  T(n) = n2+ 2((n/2)2+ 2((n/22)2+ 2((n/23)2+ 2((n/24)2+…+2((n/2i)2+ 2T(n/2i + 1)))…))))  ……(1)  而当n/2i+...

2020-12-20 20:42:38 193

原创 随机排列实现 -shuffle算法

随机排列实现 -shuffle算法洗牌算法(shuffle):原理是,一个数A,随机选一个在这个数A之前的下标,将这个下标对应数字与A对换;function shuffleArray(totalLength) { let randomArray = {}, randomIndex, temp; for (let i = 0; i < totalLength; i ++) { randomArray[i] = i; } //var randomArray = {1, 2,

2020-12-03 19:22:44 894

原创 MapReduce改造fp-growth算法

1. FP-Growth算法弊端FP-Growth算法是挖掘频繁项集最常用的算法之一,其是基于迭代FP-Tree生成频繁项集的关联规则算法。此算法仅进行两次数据集扫描,递归迭代构建FP-Tree(FP条件树),当FP-Tree中只有一个单分支时,递归迭代构建结束,最终得到频繁项集,FP-Growth算法在时间、空间复杂度和数据挖掘的效率上相比Apriori都有明显改善,对于数据量较小的数据挖掘,FP-Growth改进算法具有一定优势。但随着数据量呈指数级增长时,该算法存在以下问题:①如果事务数据库的

2020-11-24 15:57:27 773

原创 spring入门笔记

记录:一。程序耦合以下体现了程序耦合:1.注册驱动2.获取链接3.获取操作数据库的预处理对象4.执行sql,得到数据集5.遍历结果集6.释放资源二。IOC工厂模式为读取配置文件,(id-name)通过文件 用反射获取对象,存入容器map。—>spring完成。1. 三种ApplicationContext:ClassPathXmlApplicationContext和FileSystemXmlApplicationContext以及Annotatio..

2020-11-22 14:32:21 62

原创 Mysql存储结构B树与B+树与索引

首先要说明的是,B-树和B树是指同一个结构,并没有所谓的B减树,两种树是B-树和B+树。Mysql存储结构是一个B+树。1.存储结构与索引众所周知,索引是关系型数据库中给数据库表中一列或多列的值排序后的存储结构,它是一种加快查询速度的数据结构,常用索引结构有hash、B-Tree和B+Tree,Mysql选用的是B+树索引。1)Hashhash是基于哈希表完成索引存储,哈希表特性是数据存放是散列的。优点:等值查询快,通过hash值直接定位到具体的数据。缺点:范围查询效率低

2020-11-09 16:48:56 1416

原创 动态规划之力扣股票类问题

//121. 买卖股票的最佳时机 public int maxProfit(int[] prices){ if(prices.length==0) return 0; int res = 0; int min = prices[0]; for (int p : prices) { min = Math.min(min,p); res = Math.max(res,p-min);...

2020-11-08 14:51:49 154

原创 Hadoop3 Hive Spark完整安装与实践

大数据实践 Hadoop3 Hive Spark完全安装在下载目录下打开终端,移动下载好的文件到/usr/localsudo mv 文件名 /usr/local在/usr/local中解压文件cd /usr/localsudo tar -zxvf 文件名改个名sudo mv 文件名 简称[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ee5wpq3W-1604631818415)(/Users/yiger/Desktop/截屏2020-1

2020-11-06 11:04:49 704

转载 对称加密和非对称加密

对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明bai文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。不足之处是,交易双方都使用同样钥...

2020-11-03 16:33:20 99

原创 shamir门限方案阅读与密码学课程感想

这里重点谈一下对Adi Shamir的关于阈值密钥分 享方案的论文《How to Share a Secret 》的理解,以及这两周密码学课堂的学习感想。 想要看懂一篇论文,首先要知道它是为了解决什么问题,然后看它为了解决这个问题采用了什么样 的方法,最后再总结这个方法的效果。Adi Shamir的这篇论文是为了解决多方计算的数据隐私问题,提 出了一种基于拉格朗日插值多项式的门限方案,从而实现了安全计算。下面具体进行解释。 一个比较直观...

2020-11-03 14:26:17 1554

原创 微服务架构与组件总览

最近在各个地方总是看到微服务、消息队列、Redis、K8s等词语,下面就对他们涉及的概念进行一个总体的介绍,具体的技术实现目前还未完全掌握,那就先从整体把握关系,更方便以后的深入学习。(参考知乎和CSDN资料)全篇以电商服务千万级流量为例,穿插着其他介绍1.微服务架构演化 在互联网早期的时候,单体架构就足以支撑起日常的业务需求,大家的所有业务服务都在一个项目里,部署在一台物理机器上。所有的业务包括你的交易系统、会员信息、库存、商品等等都夹杂在一起,当流量一旦起来之后,单体架构的问题就暴露..

2020-11-02 21:26:43 2508 1

原创 二叉树三种遍历方式的非递归实现

树的递归实现方式很简单,下面介绍三种遍历的非递归实现。树的遍历有个特点,那就是在处理具体问题时,绝大多数情况下是在当前循环、或函数(或是子树)的根节点来处理的,能够注意到当前根节点是如何从上个根节点得来是关键。1.先序遍历注意栈先进后出,先压右节点。void preOrder(node *root){ stack<node*>sk; sk.push(root); while(!sk.empty()){ node *cur = sk.to

2020-10-27 09:53:11 556

转载 docker中的容器和镜像

最近学习了docker,感觉容器和镜像学的有点模糊。特别是镜像和容器,感觉完全分不开,所以在此学习,然后总结了一下,便于后面的学习。***************补充:经过我的一段时间使用,现在再来说一下Docker中容器和镜像的关系镜像你可以把它看成Java中的类,而容器可以看做是类的实例化对象。 一个类可以有多个对象,同理,一个镜像可以有多个容器。***************docker的整个生命周期有三部分组成:镜像(image)+容器(container)+仓库(re.

2020-10-16 22:30:49 130

原创 反转链表--清晰易懂的两种方法

反转一个单链表。如下示例::输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULLpublic class ListNode { int val; ListNode next; ListNode(int x) { val = x; }}一、 迭代法:注意观察示例:1->2->3->4->5->NULL的反转可以看成:NULL<-1<

2020-10-13 10:45:52 397

原创 LeetCode刷题过程中的一些小tips

字符串切割的使用频率还是挺高的,string本身没有提供切割的方法,但可以使用stl提供的封装进行实现或者通过c函数strto...

2020-08-10 19:05:24 175

原创 三种基本背包问题

一、0/1背包问题问题描述:有n件物品和容量为m的背包 给出i件物品的重量以及价值 求解让装入背包的物品重量不超过背包容量 且价值最大 。特点:这是最简单的背包问题,特点是每个物品只有一件供你选择放还是不放。① 二维解法设f[i][j]表示前 i 件物品 总重量不超过 j 的最大价值 可得出状态转移方程f[i][j]=max{f[i-1][j-a[i]]+b[i], f[i-1][j]}代码: for(int i=1;i<=n;i++) for(int j=m;j>0;j-

2020-06-21 18:19:31 402

原创 JDK1.7和JDK1.8中HashMap是线程不安全的,并发容器ConcurrentHashMap模型

前言只要是对于集合有一定了解的一定都知道HashMap是线程不安全的,我们应该使用ConcurrentHashMap。但是为什么HashMap是线程不安全的呢,之前面试的时候也遇到到这样的问题,但是当时只停留在***知道是***的层面上,并没有深入理解***为什么是***。于是今天重温一个HashMap线程不安全的这个问题。首先需要强调一点,HashMap的线程不安全体现在会造成死循环、数据丢...

2020-03-12 13:52:30 596

转载 转载CSDN博客步骤

...

2020-03-12 13:48:36 73

原创 C++算法一些常用的stl函数

1.lower_bound( )和upper_bound( )lower_bound( )和upper_bound( )都是利用二分查找的方法在一个排好序的数组中进行查找的在从小到大的排序数组中,lower_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去...

2019-05-14 17:51:57 181

原创 4123: 马走日,2797:最短前缀 Trie,2362:Square 能否拼接为正方形

4123: 马走日,2797:最短前缀 Trie,2362:Square 能否拼接为正方形

2019-05-13 17:50:21 239

原创 Java反射

反射是框架设计的灵魂要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运行时识别对象和类的信息,主要有2种方式:一种是传统的RTTI,它假定我们在编译时已经知道了所有的类型信息;另一种是反射机制,它允许我们在运行时发现和使用类的信息。1、Class对象 理解RTTI在Java中的工作原理,首先需要知道类型信息在运行时是如何表示的,这是由Class对象来完成的,...

2019-04-22 12:08:32 101

原创 hashmap有关问题与计算

1.HashMap的存储方式是数组加链表,主干是一个Entry数组。Entry是HashMap的基本组成单元,每一个Entry包含一个key-value键值对;当不同的key经过hash计算得出的index值相同时,就需要在数组里添加一个链表来存储index相同的元素,HashMap的整体结构如下:简单来说,HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决...

2019-03-20 15:21:52 150

spring入门详解.rtfd.zip

spring入门详解,一篇入门,小白也能看懂! 基于课程的讲解记录,代码截图,方便理解!

2020-03-12

空空如也

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

TA关注的人

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