自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 五大常用算法——动态规划

基本概念:   动态规划过程:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。 基本思想:   类似于分治算法(后续博客介绍),将一个待求解的问题分解成若干个子问题,顺序求解每个子问题,前一个子问题的解...

2020-05-24 12:30:57 84 0

原创 xftp的使用和介绍

xftp简介: Xftp是一个功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 以后,MS Windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。 优点 安全性 是一个软件应用程序,可以帮助您通过网络传输文件。 尽管它是为工作在Window...

2019-09-23 16:31:19 185 0

原创 关于操作系统常见问题总结

1、进程和线程以及它们的区别 进程是具有一定功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源调度和分配的一个独立单位。 线程是进程的实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。 一个进程可以有多个线程,多个线程也可以并发执行 2、线程同步的方式有哪些...

2018-10-04 11:08:07 683 0

翻译 数据库相关知识总结

数据库的四大特性(ACID): 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。 一致性(Consistency) 一致性是...

2018-10-03 15:29:15 86 0

原创 java并发包提供的并发工具类

java并发包提供哪些并发工具类? 我们通常所说的并发包就是java.util.concurrent及其子包,集中了java并发的各种工具类,主要包括以下几个方面: 提供了比synchronized更加高级的同步结构,包括CountDownLatch、CyclicBarrier、Semaphor...

2018-09-24 16:54:17 225 0

原创 TCP 和 UDP

UDP协议 TCP和UDP有哪些区别? TCP是面向连接的,UDP是面向无连接的。面向连接的协议会先建立连接。例如TCP的三次握手。所谓的建立连接是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态,用这样的数据结构来保证所谓的面向连接的特性。 TCP提供可靠支付,保证数据无...

2018-09-22 19:34:36 80 0

原创 java什么情况下产生死锁?如何定位修复?

java什么情况下产生死锁?如何定位修复? 死锁:死锁是一种特定的程序状态,在实体之间,由于循环依赖导致彼此一直处于等待之中,没有任何个体可以继续前进。 死锁产生条件: 互斥条件 请求与保持条件 不可剥夺条件 环路等待条件 定位死锁最常见的方式就是利用jstack工具获取线程栈,然后定位相互之...

2018-09-22 15:11:02 1509 0

原创 MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理

MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理 所谓隔离级别,就是在数据库事务中,为保证数据读写的正确性而提出的定义,它并不是MySQL专有的概念,而是源于ANSI/ISO制定的SQL-92标准。 MySQL InnoDB引擎,是基于MVCC(Multi-Versioning Conc...

2018-08-30 21:38:41 632 0

原创 java常见面试题(4)

接口和抽象类的区别? 接口和抽象类是java面向对象的两个基础机制。 接口是对行为的抽象,它是抽象方法的集合,利用接口可以达到API定义和实现分离的目的。接口,不能实例化;不能包含任何非常量成员,任何field都是隐含着public static final的意义;没有非静态方法实现,也就是要...

2018-08-30 12:04:29 154 0

原创 java常见面试题(3)

synchronized和ReentrantLock有什么区别? synchronized是java内建的同步机制,所以也称其为Intrinsic Locking,它提供了互斥的语义和可见性,当一个线程已获取当前锁时,其它试图获取的线程只能等待或者阻塞在那里。在java 1.5以前,synchr...

2018-08-29 17:10:57 91 0

原创 java常见面试题(2)

java反射机制,动态代理是基于什么原理? JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。反射机制是java提供的一种基础功能,赋予程序在运行...

2018-08-28 18:08:17 183 0

原创 Java常见面试题(1)

对java平台的理解,java是否是解释执行? java是面向对象的语言,最显著的两个特点是“一次书写,到处运行(Write once,run anywhere)”和垃圾收集(GC)。第一个特点使java非常容易的或跨平台能力,第二个特点java通过垃圾收集器回收分配内存,大部分情况下,程序员不...

2018-08-28 15:02:34 95 0

原创 Leetcode——532. 数组中的K-diff数对

532. 数组中的K-diff数对 给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对。这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k. 示例 1: 输入: [3, 1, 4, 1, 5],...

2018-08-24 22:08:20 100 0

翻译 spring中的设计模式

spring中的设计模式 第一种:简单工厂 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。 spring中的BeanFactory就是简单工厂模式的体...

2018-08-24 10:50:26 55 0

原创 Leetcode——515. 在每个树行中找最大值

515. 在每个树行中找最大值 您需要在二叉树的每一行中找到最大的值。 示例: 输入: 1 / \ 3 2 / \ \ 5 3 9 输出: [1, 3, 9] 代码: /** * Definition for ...

2018-08-23 21:23:41 288 0

原创 Leeycode——404. 左叶子之和

404. 左叶子之和 计算给定二叉树的所有左叶子之和。 示例: 3 / \ 9 20 / \ 15 7 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 代码: /** * Definition for a binary tree node...

2018-08-23 21:01:26 239 0

原创 Spring练习(2)

导包: 实体类(javaBean): package until; public class Car { private String name; private String color; public String getName() { r...

2018-08-16 22:07:51 92 0

原创 Spring练习(1)

导包: 实体类(javaBean): package until; public class User { private String name; private Integer age; private Car car; public Car g...

2018-08-16 22:00:58 413 0

原创 Leetcode——112. 路径总和

112. 路径总和 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ ...

2018-08-16 21:36:47 86 0

原创 Leetcode——99. 恢复二叉搜索树

99. 恢复二叉搜索树 二叉搜索树中的两个节点被错误地交换。 请在不改变其结构的情况下,恢复这棵树。 示例 1: 输入: [1,3,null,null,2] 1 / 3 \ 2 输出: [3,1,null,null,2] 3 / 1 \ 2 示例 2: ...

2018-08-16 21:06:30 186 0

原创 Leetcode——106. 从中序与后序遍历序列构造二叉树

106. 从中序与后序遍历序列构造二叉树 根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 postorder = [9,15,7,20,3] 返回如下的二叉树: ...

2018-08-16 20:10:54 188 0

原创 Linux文件目录管理命令

Linux文件目录管理命令 1.touch命令 touch命令用于创建空白文件或设置的时间,格式为“ touch [选项 ] [文件 ]”。 2.mkdir命令 mkdir命令用于创建空白的目录,格式为“ mkdir [选项 ] 目录”。 系统中, 文件夹是最常见的类型之一。除了能创...

2018-08-16 17:38:22 303 0

原创 Linux文本文件编辑命令

Linux文本文件编辑命令 1.cat命令 cat命令用于查看纯文本件(内容较少的),格式为“ cat [选项 ] [文件 ]”。 2.more命令 more命令用于查看纯文本件(内容较多的),格式为“ more [选项 ]文件”。 3.head命令 head命令用于查看纯文本档的前 ...

2018-08-16 16:37:23 1654 0

原创 Linux工作目录切换命令

Linux工作目录切换命令 1.pwd命令 pwd命令用于显示户当前所处的工作目录,格式为“ pwd [选项 ]”。 2.cd命令 cd命令用于切换工作路径,格式为“ cd [目录名称 目录名称 ]”。 3.ls命令 ls命令用于显示目录中的文件信息,格式为“ ls [选项 ]...

2018-08-16 16:15:41 5258 0

原创 Linux系统状态检测命令

Linux系统状态检测命令 1.ifconfig命令 ifconfig命令用于获取网卡配置与络状态等信息,格式为“ ifconfig [网络设备 ] [参数 ]”。 2.uname命令 uname命令用于查看系统内核与版本等信息,格式为“ uname [-a]”。 3.uptime命...

2018-08-16 11:02:44 149 0

原创 Linux系统工作命令

Linux常用的系统工作命令 1. echo命令 echo命令用于在终端输出字符串或变量提取后的值,格式为“ echo [字符串 | $变量 ]”。 2.date命令 date命令用于显示及设置系统的时间或日期,格式为“ date [选项 ] [+指定的格式 指定的格式 ]” da...

2018-08-16 10:36:32 76 0

转载 java中三种常见内存溢出错误的处理方法

java中三种常见内存溢出错误的处理方法 jvm管理的内存大致包括三种不同类型的内存区域: Permanent Generation space(永久保存区域) Heap space(堆区域) Java Stacks(Java栈)。 其中永久保存区域主要存放Class(类)和Meta的信...

2018-08-15 21:51:22 272 0

原创 Leetcode——110. 平衡二叉树

110. 平衡二叉树 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ ...

2018-08-15 21:31:33 87 0

原创 Leetcode——145. 二叉树的后序遍历

145. 二叉树的后序遍历 给定一个二叉树,返回它的 后序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 代码: /** * Definition for a binary tree node. * publ...

2018-08-15 21:11:12 125 0

原创 Leetcode——144. 二叉树的前序遍历

144. 二叉树的前序遍历 给定一个二叉树,返回它的 前序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 代码: /** * Definition for a binary tree node. * public...

2018-08-15 21:04:08 480 0

原创 Leetcode——111. 二叉树的最小深度

111. 二叉树的最小深度 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 ...

2018-08-13 22:33:16 89 0

原创 Leetcode——105. 从前序与中序遍历序列构造二叉树

105. 从前序与中序遍历序列构造二叉树 根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: ...

2018-08-13 22:15:49 131 0

原创 Leetcode——108. 将有序数组转换为二叉搜索树

108. 将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-1...

2018-08-13 21:56:04 61 0

原创 Leetcode——104. 二叉树的最大深度

104. 二叉树的最大深度 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 ...

2018-08-13 21:37:12 459 0

原创 Leetcode——100. 相同的树

100. 相同的树 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]...

2018-08-13 20:57:41 78 0

原创 Leetcode——98. 验证二叉搜索树

98. 验证二叉搜索树 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入: 2 / \ 1 3 ...

2018-08-13 20:50:00 79 0

原创 Leetcode——94. 二叉树的中序遍历

94. 二叉树的中序遍历 给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 代码: /** * Definition for a binary tree node. ...

2018-08-13 20:42:04 102 0

原创 Leetcode——101. 对称二叉树

101. 对称二叉树 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: ...

2018-08-13 20:11:11 90 0

翻译 Leetcode——102. 树的层次遍历

102. 二叉树的层次遍历 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], ...

2018-08-13 19:44:22 89 0

原创 排序算法——堆排序

      堆排序是指利用堆这种数据结构所设计的一种选择排序算法。堆是一种近似完全二叉树的结构(通常堆是通过一维数组来实现的),并满足性质:以最大堆(也叫大根堆、大顶堆)为例,其中父结点的值总是大于它的孩子节点。   我们可以很容易的定义堆排序的过程: 由输入的无序数组构造一个最大堆,作为初始...

2018-06-21 19:58:42 46 0

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