- 博客(40)
- 收藏
- 关注
原创 ARTS第八周
AlgorithmLeetCode 1019. Next Greater Node In Linked ListWe are given a linked list with head as the first node. Let’s number the nodes in the list: node_1, node_2, node_3, … etc.Each node may have...
2019-05-21 15:06:28 185
原创 Git学习(二)基本操作学习
要使用git进行项目管理:首先要初始化git仓库git init这个命令就是来生成git的版本库,会创建一个.git的隐藏文件夹利用git进行项目管理的流程:工作目录 -> 暂存区域 -> git仓库git status 查看当前项目中文件的状态在我们创建了a.txt之后使用git status,可以看见图中出现了红色字体的a.txt1、创建文件工作目录 ----...
2019-05-18 17:38:32 218
原创 String中intern()方法的详解
intern方法之前总是似懂非懂。今天做了一些测试,总算是明白了一点。如有错误还请指出String s1 = new StringBuilder("计算").append("机").toString(); //a1System.out.println(System.identityHashCode(s1)); //a2String s4 = "计算机";//a3System.out...
2019-05-16 07:34:10 570 2
原创 ARTS第七周
AlgorithmLeetcode 26. Remove Duplicates from Sorted ArrayGiven a sorted array nums, remove the duplicates in-place such that each element appear only once and return the new length.Do not allocate ...
2019-05-12 20:48:57 165
原创 Git学习(一)基本概念学习
Git官网从官网中边学习git,边总结概括知识版本控制版本控制就是一种记录文件内容变化,以便将来查阅特定版本情况的系统。分布式版本控制系统(DVCS),像 Git、Mercurial、Bazaar 以及 Darcs 等。主要是为了方便管理,且不像集中式的系统,只要中心坏掉了,所有的地方都会出现问题。如果出现问题,可以使用任意的完成镜像的本地仓库恢复。个人理解:(如果不对,请大佬们告知T....
2019-05-12 20:33:48 164
原创 ARTS第六周
Algorithm198 . House RobberYou are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each ...
2019-05-05 21:29:24 111
翻译 Java NIO包的简单介绍
Java NIO官方总结java.nio中几个重要的类Buffer,数据的容器Charset,以及相关的解码编码器(用于在字节流和Unicode字符之间转换)Channel,数据与能够执行IO操作的实体(比如硬件设备、文件、网络套接字等) 之间的连接。Selector和selection key,它们和可选择的Channel一起组成了 多路复用、非阻塞的IO模型Channel是一个接...
2019-05-05 21:28:50 996
原创 AbstractQueuedSynchronizer抽象队列同步器的简单理解
AQS(AbstractQueuedSynchronizer抽象队列同步器)是一个抽象类,提供了一个框架,用于实现阻塞锁(ReentrantLock、ReetrantReadWriteLock,尽管这两个类不是直接继承自AQS,但是他们的内部类Sync继承了AQS)或是同步器工具(CountDownLatch、CyclicBarrier、Semaphore等)等依赖于等待队列的工具。 AQ...
2019-05-05 16:42:31 421
原创 ARTS 第五周
Algorithmleetcode 976. Largest Perimeter TriangleGiven an array A of positive lengths, return the largest perimeter of a triangle with non-zero area, formed from 3 of these lengths.If it is impossi...
2019-04-30 19:26:35 102
原创 MESI协议的理解
MESI protocolMESI协议是一种基于无效的缓存一致性协议。什么是基于无效呢?首先讲一下CPU和缓存的关系。计算机在数据处理或信号控制的时候,常与内存进行数据访问,但是内存和CPU的速度差别很大,所以会造成CPU资源浪费问题,为了解决两者的速度不匹配,所以在两者之间加了L1、L2、L3等缓存。在多核计算机中有多个CPU,每个CPU都有自己的缓存,所以就会造成缓存的数据不一致问题。...
2019-04-30 19:24:40 3818
原创 计算机网络(二)UDP
下面是我查阅资料后对UDP的理解UDP(User Datagram Protocol),用户数据包,是面向无连接的不可靠传输协议。属于传输层协议。TCP协议在IP报文中协议类型是6,UDP是17。UDP报文包含UDP 首部 和 数据部分首部包含源端口、目的端口、UDP数据包的长度(包含首部和数据部分)、UDP检验和(主要是为了检验在传输过程中是否有错,如果有错就会丢掉)。源端口是可选的...
2019-04-30 15:11:04 914
原创 ARTS 第四周
Algorithm442.Find All Duplicates in an ArrayGiven an array of integers, 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once.Find all the elements that appear twice i...
2019-04-16 23:51:56 154
原创 Linux(一)网络管理
IP地址配置ifconfig可以进行临时配置ifconfig eth0 192.168.0.200 netmask 255.255.255.0临时配置eth0网卡的ip和子网掩码红帽专用工具setup修改配置文件/etc/sysconfig/network-scripts/ifcfg-eth0文件:DEVICE=eth0 #device网卡设备名BOOTPROTO=no...
2019-04-16 10:52:59 150
原创 计算机网络(一)TCP
在看了皓叔的TCP的哪些事儿之后,这篇文章主要对表述一下我对TCP协议的简单理解。由于知识浅薄,如果有错误还请纠正,谢谢。TCP是传输层的协议,它是面向连接的。这里的连接指的只是状态上的连接(即维持了一系列状态,动态的改变状态),而不是实际连接起来的。要了解TCP,就需要对这几部分进行理解:协议的首部结构重传机制流量控制拥塞控制各种算法…一、协议的首部结构首部的前20个...
2019-04-15 13:56:30 285
原创 ARTS 第三周
Algorithm15.三数之和给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]思...
2019-04-07 17:37:21 163
原创 字节序详解
字节序(endianness)这篇文章来自于对How to teach endian的理解One of the major disciplines in computer science is parsing/formatting. This is the process of converting the external format of data (file formats, net...
2019-04-07 16:11:41 1502
原创 Cookie和Session简述
Cookie概述HTTP Cookie是服务器发送到客户端浏览器并保存在本地的一小块文本数据。浏览器下次向同一服务器发送请求时会携带这个Cookie并且发送给服务器。Cookie使得无状态的HTTP协议能够记录一些信息。Cookie常用于会话状态管理(如用户登录状态、购物车、游戏分数或其他需要记录的信息)、浏览器行为跟踪(如跟踪分析用户行为等)。浏览器通过请求头中的Cookie将数据发送给...
2019-04-06 13:56:38 261
原创 ARTS 第二周
AlgorithmLeetCode 23 合并K个排序链表合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6思路:每次合并两个链表,直到最后只有一条列表。class Solut...
2019-04-02 17:07:21 181
转载 红黑树
什么是红黑树?一棵自平衡的二叉查找树。那么什么是自平衡的二叉查找树呢,其实就是在插入、删除、修改等操作执行的时候为了符合自己的性质,执行的一系列自平衡操作。那么我们先来说一下红黑树的性质:性质每个结点是黑色或红色的根结点是黑色的所有的叶子(NIL)结点都是黑色的。这里的NIL也就是空的意思,是没有数据的结点。红色结点的孩子结点是且仅是黑色的。从任一...
2019-04-02 16:59:25 169
原创 Executor框架
Executor框架一、简介什么是Executor框架呢?Executor框架说白了就是一个线程池,用于存放控制线程的启动、执行、关闭。Executor是一个灵活且强大的异步执行框架,其支持多种不同类型的任务执行策略,提供了一种标准的方法将任务的提交过程和执行过程解耦开发,基于生产者-消费者模式,其提交任务的线程相当于生产者,执行任务的线程相当于消费者,并用Runnable来表示任务,Ex...
2019-03-31 15:06:03 311
原创 MySQL高级知识复习
一、MySQL简介MySQL是一个关系型数据库管理系统。具有开源、灵活、速度快等特性。支持大型数据库,可以支持5000万条记录的数据仓库,32位系统表文件最大可支持4G,64位系统最大可支持8T。MySQL的主要配置文件有:二进制文件主要用于主从复制。错误日志默认关闭,记录严重的警告和错误信息,每次启动和关闭的详细信息。查询日志默认关闭,记录查询的sql语句(用于sql优化查...
2019-03-26 20:13:24 199
原创 HashMap 详解
Java集合类常用的集合类类图:一、HashMapHashMap是基于哈希算法的键值对集合。在此先简单说一下哈希。哈希表: 也成为散列表,是根据关键码值直接进行访问的数据结构。通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射关系就是哈希函数,但是我们往往通过哈希函数计算的值有可能会出现相同的情况,这就叫做冲突。所以好的哈希函数需要尽可能的保证计算简单和散列地址分布...
2019-03-25 20:10:24 272
转载 Java中的hashCode()
这篇文章是转载翻译过来的原文地址:Guide to hashCode() in Java在Java中有很多的集合中使用了Hash方法,比如HashMap、HashSet等。这些集合在计算某个数的hash值时使用hashCode()方法,并且在内部使用这个值来存储数据,以至于访问操作更加高效。hashCode()规定:每当在一次Java程序中执行时,多次调用同一对象的hashCode()...
2019-03-24 22:33:40 132
原创 ARTS 计划 第一周打卡
LeetCodeLeetCode 862. 和至少为 K 的最短子数组返回 A 的最短的非空连续子数组的长度,该子数组的和至少为 K 。如果没有和至少为 K 的非空子数组,返回 -1 。示例 1:输入:A = [1], K = 1输出:1示例 2:输入:A = [1,2], K = 4输出:-1示例 3:输入:A = [2,-1,2], K = 3输出:3提示:1 &l...
2019-03-24 15:01:28 331
原创 JVM内存区域
话不多说直接丢重点。适合学过,巩固的人看。一、运行时数据区灰色区域代表线程共享,白色为线程私有。JVM在运行Java程序的过程中将它所管理的内存划分为若干个数据区域。程序计数器:可以当做是字节码文件的行号指示器,记录正在执行的指令的地址,唯一一块不存在OutOfMemoryError异常的内存。Java虚拟机栈:描述的是Java方法执行的内存模型,每个方法都会创建一个栈帧(St...
2019-03-23 22:55:16 170
原创 LeetCode 124. 二叉树中的最大路径和
给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6示例 2:输入: [-10,9,20,null,null,15,7] -10 / \ 9 20 / \ 15 7输出: ...
2019-03-21 08:29:17 97
原创 MySQL基础复习
文章目录MySQL基础语法规范常用基础命令一、DQL数据查询1.1 常见函数1.2 连接查询(多表查询)1.3 子查询1.4 分页查询1.5 联合查询union二、DML数据操作2.1 插入语句2.2 修改语句2.3 删除语句三、DDL数据定义3.1 库的管理3.2 表的管理3.3 常见的数据类型3.4 常见约束四、TCL事务控制事务的ACID特性:事务的创建:步骤:4.1 隔离级别4.2 del...
2019-03-12 18:34:44 156
转载 Java类加载器
Java类加载器是Java运行时环境的一部分,负责动态加载Java类到Java虚拟机的内存空间中。Java类加载的方式有两种隐式装载:当程序中遇到通过new等方式生成对象时,隐式调用类加载器加载对应的类到内存中。这是动态性的体现。显示装载:通过Class.forName()、ClassLoader.loadClass()等方法,显式加载对应的类。类加载的过程主要分为三个部分装...
2019-03-05 09:32:02 113
原创 Java BigDecimal
Java BigDecimal1、概述2、构造方法合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入1、概述位于java.mat...
2019-01-28 20:29:39 139
原创 对顶堆,求第K大的数
对顶堆,顾名思义就是两个相对的堆。O(logn)0即上方是一个维护最小值的小根堆smheap,下方则维护最大值的大根堆bgheap。利用这样的性质,我们就可以求中位数、动态维护K大值。优先队列是用堆来实现的。思路:(我们必须保证小根堆里面的所有值是大于大根堆里面所有值的)1. 如果要插入的值x>smheap.top(),那么就往smheap里面放。2. 如果要插入的值x&...
2018-12-23 23:07:53 545
原创 Linux磁盘及文件系统管理
磁盘是持久化的数据存储。磁盘的接口类型: IDE: 一种较老的接口技术,价格低廉,兼容性强,传输速度可达133MB/S SCSI:主要应用于中、高端服务器中,支持热拔插,价格高,UltraSCSI 320MB/S,UltraSCSI640 640MB/S SATA:主要用于PC上,串口硬盘,可达6gbps; SAS:是一种串行链接的SCSI接口技术,向下兼容SA...
2018-09-01 16:07:19 136
原创 设计模式之装饰者模式
装饰模式(Decorator)装饰模式指的是: 在不必改变原文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是用装饰i来包裹真实的对象。动态地将责任附加到对象上,即不断地为对象添加装饰。如下图所示:Component:增加功能时的核心角色,被装饰的对象。ConcreteComponent:实现了Component所定义的接口Decorator...
2018-08-22 17:07:55 122
原创 设计模式之策略模式(Strategy)
策略模式(Strategy) Strategy就是"策略"的意思, 指的是与敌军对垒时行军作战的方法。在编程中,我们可以将他理解为“算法”策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换,让算法独立于使用它的客户而独立变化。通过接口将解决同一个问题的不同的算法封装起来,相互替换,从而可以应用于解决同一问题的不同的对象中。正如下图所示:Contex...
2018-08-22 11:20:18 181
原创 激光炸弹 HYSBZ - 1218 dp
一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标。现在地图上有n(N<=10000)个目标,用整数Xi,Yi(其值在[0,5000])表示目标在地图上的位置,每个目标都有一个价值。激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆破范围,即那个边长为R的正方形的边必须和x,y轴平行。若目标位于爆破正方形的边上,该目标将不会被摧毁。 Input输入文件的第一行为正...
2018-08-20 08:56:34 267
原创 并查集的简单例题
codeforce 731C:Socks http://codeforces.com/problemset/problem/731/C题意: 给n(袜子数),m(天数),k(颜色个数) 接下来的一行是n个袜子的颜色 接下来m行是每天需要穿的袜子. 你每天必须穿同种颜色的袜子,所以你必须给不同颜色的袜子进行染色. 求需要染色的最少次数题解: 将所有的需要...
2018-08-18 17:42:03 208
原创 线段树经典题
Buy Tickets POJ - 2828 Sample Input40 771 511 332 6940 205231 192431 38900 31492Sample Output77 33 69 5131492 20523 3890 19243 题意: 插队问题,先给一个n, 然后又n个人进行排队, 左边的数是这个人排队后的位置...
2018-08-16 15:47:09 137
原创 关于updatedb命令和locate命令的问题
在CentOS-7中使用locate命令发现没有这个命令, 就去安装但是也不可安装这就需要使用updatedb更新一下文件库, 运行这个命令发现也不存在所以就yum安装, 发现还是不存在这是你就需要去安装一下mlocate命令如下:yum -y install mlocateyum -y install updatedbupdatedblocate inittab...
2018-08-15 20:53:40 2477
原创 字符串专题(一) 简单kmp 循环节 字典树 next数组应用
简单理解kmp由于脑子不够用,所以只能粗略的说一下kmpkmp是用于做字符串匹配的应用: 1.匹配模式串在主串中第一个位置 2.模式串在主串中出现的次数 3.求循环节长度/ 最小覆盖子串长度 4.求串的最大前缀-后缀或次数或每个长度(即相同的前缀和后缀) 等等首先我们先想一下用暴力进行匹配(tlen是模式串的长度,slen是主串的长度)从左到右依次匹配,...
2018-08-13 11:44:51 235
原创 HDU-1506 单调栈
Largest Rectangle in a Histogram HDU - 1506 直方图是由在共同基线上排列的矩形序列组成的多边形。矩形具有相等的宽度,但可以具有不同的高度。例如,左边的图显示了由高度为2, 1, 4、5, 1, 3、3的矩形组成的直方图,其中单位为矩形的宽度为1: 通常,直方图用于表示离散分布,例如文本中字符的频率。请注意,矩形的顺序,即它们的高度,是重...
2018-08-11 20:03:32 483
原创 Shuffle'm Up POJ - 3087
Shuffle'm UpTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 13495 Accepted: 6250DescriptionA common pastime for poker players at a poker table is to shuffle stacks of chips. Shuffling chips ...
2018-03-18 12:20:58 179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人