自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MaoLin Tian's Blog

from Bird to God(mdzz的直译)

原创 [网络基础 一] 分层体系结构

部分内容参考自:http://www.cnblogs.com/maybe2030/p/4781555.html#top 部分内容引自牛客网上的知识总结,https://www.nowcoder.com/ta/review-network 部分内容引自《计算机网络》 谢希仁 计算机网络...

2017-08-31 10:38:55 2608 0

原创 【目录索引】算法刷题部分索引

算法关于树的算法题剑指offer_二叉树—重建二叉树 http://blog.csdn.net/sinat_33087001/article/details/77433440 剑指offer_二叉树—树的子结构 http://blog.csdn.net/sinat_33087001/art...

2017-08-30 16:29:45 340 0

原创 【目录索引】数据结构部分索引

数据结构【数据结构 总论】—概述 http://blog.csdn.net/sinat_33087001/article/details/76573365 【数据结构 一】—数组 http://blog.csdn.net/sinat_33087001/article/details/736...

2017-08-30 16:28:12 218 0

原创 【目录索引】Java多线程部分索引

Java多线程[Java多线程 一]—线程的概念与基本性质 http://blog.csdn.net/sinat_33087001/article/details/77621118 [Java多线程 二]—线程的状态与基本操作 http://blog.csdn.net/sinat_3308...

2017-08-30 16:26:42 325 0

原创 【目录索引】深入理解JVM索引

深入理解Jvm[深入理解JVM 一]—Java程序执行流程 http://blog.csdn.net/sinat_33087001/article/details/76977437 [深入理解JVM 二]—Java的编译过程 http://blog.csdn.net/sinat_33087...

2017-08-30 16:25:21 663 0

原创 【算法真题 一】满二叉搜索树求三个节点的最低公共祖先

题目描述对于一棵满二叉搜索树深度为K,节点数为2^k - 1,节点值为[1, 2^k - 1]。给出k和任意三个节点的值,输出包含该三个节点的最小子树的根节点值。输入: 4 10 15 13输出:12解题思路依据二叉搜索树的特殊性质和满二叉树的特殊性质,可用二分查找的方式代码实现package 腾...

2017-08-30 16:21:27 476 0

原创 【目录索引】Java基础部分索引

复习纲要复习纲要主要分为以下几个部分:Java基础,深入理解Jvm,Java多线程,J2SE相关知识,数据结构,算法,数据库,设计模式,Git操作,网络基础Java基础Java的基本概念和特性Java的基础语法基本类型与运算面向对象思想异常处理输入输出IO流深入理解Jvm[深入理解JVM 一]—J...

2017-08-30 12:05:06 415 0

转载 [Java多线程 九]---JUC包下并发集合类

本篇为【Java多线程】的第九篇,也是JUC的第四篇,对JUC包下的并发集合框架有了初步了解,具体的底层实现和使用将在下一个系列中提出,本系列就是多线程的一个全流程

2017-08-30 10:07:36 4157 1

原创 [Java多线程 五]---JAVA锁有哪些种类

本篇为【java多线程】系列的第五篇,主要内容锁的一些特性和锁的一些分类介绍

2017-08-29 15:49:12 3681 0

转载 【解决方案 一】JAVA中UML图的使用

UML基本元素符号及其JAVA实现包(Package)包是一种常规用途的组合机制。UML中的一个包直接对应于Java中的一个包。在Java中,一个包可能含有其他包、类或者同时含有这两者。进行建模时,你通常拥有逻辑性的包,它主要用于对你的模型进行组织。你还会拥有物理性的包,它直接转换成系统中的Jav...

2017-08-29 11:05:46 289 0

转载 [Java多线程 八]---JUC包下的锁和工具类

本篇为【java多线程】系列的第八篇,主要内容是JUC并发包中涉及的内容,本篇为JUC的第三篇,对JUC包下的锁进行了大概的了解

2017-08-29 10:32:20 750 0

转载 [Java多线程 七]---JUC包下原子类

本篇为【java多线程】系列的第七篇,主要内容是JUC并发包中涉及的内容,本篇为JUC的第二篇,对juc包下的原子类有个大致理解

2017-08-28 20:56:02 556 0

原创 [Java多线程 六]---JUC并发包概述

本篇为【java多线程】系列的第六篇,主要内容是JUC并发包中涉及的内容,本篇为JUC的第一篇,相当于概述,接下来的几篇将就JUC包的细节进行分析

2017-08-28 17:07:53 593 0

原创 [Java多线程 四]---线程安全与锁优化

本篇是【java多线程】系列的第四篇,在了解了JMM内存模型和线程的基本操作后,下一步就是如何运用这些知识来达成线程的安全,本篇就是讲如何实现线程安全和锁优化的,但这里只是简单介绍,重点在下一篇博客里java并发包下的类和实现里介绍

2017-08-28 11:44:06 4572 0

原创 [Java多线程 三]---JMM内存模型

本篇是【java多线程】系列的第三篇文章,在之前了解了基本操作后,我们要为之后的线程安全和同步做准备,又因为我们讨论的并发是基于java的,所以离不开堆java内存模型的讨论,这篇着重介绍JMM的内存模型,下一篇讨论一些多线程的安全策略和同步机制

2017-08-27 17:05:06 864 0

原创 [Java多线程 一]---线程的概念与基本性质

本篇为【java多线程】系列的第一篇,主要介绍线程的一些基本概念,性质,线程同步机制等

2017-08-27 16:18:12 1122 0

原创 剑指offer_数组---把数组排成最小的数

题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。解题思路1,把数字转换为字符串 2,定义新的字符串比较规则代码实现/** * */ package...

2017-08-27 11:55:22 167 0

原创 剑指offer_数组---最小的K个数

题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。解题思路实际上考察的是对排序的理解。这里我用以下几种方法区做 1

2017-08-27 11:18:38 177 2

原创 剑指offer_数组---数组中重复的数字

题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。解题思路1,用额外的空间...

2017-08-26 11:21:52 159 0

原创 剑指offer_发散思维---求1+2+3+...+n

题目描述求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。解题思路用&&运算符,满足第一个条件才执行第二个条件和递归这两种结合来解题代码实现/** * */ package 发散思维...

2017-08-25 18:09:59 194 0

原创 剑指offer_数组---数组中出现次数超过一半的数

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。解题思路1,第一种,超过一半的数必然出现在递增数组中间,先排序,然后统计中间值次...

2017-08-25 17:52:16 188 0

原创 剑指offer_数组---连续子数组的最大和

题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1...

2017-08-25 17:12:36 170 1

原创 【经典算法问题 一】海量数据中找出前k大数(topk问题)

转自:http://blog.csdn.NET/zyq522376829/article/details/47686867 前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些...

2017-08-25 16:43:44 1517 0

原创 剑指offer_数组---顺时针打印矩阵

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.解题思路1,首先判断一共可以打...

2017-08-25 16:06:31 182 0

转载 【Git相关知识 二】Git全流程总结

转载自http://www.jianshu.com/p/61b7fbbc4853 四个空间首先要明白四个空间:远程仓库,本地仓库,本地缓存区,本地工作区; 远程仓库:该仓库是一个集中的数据仓库,正常情况下,所有参与开发的人员的代码最后都会提交到该仓库的自己的分支上,再由具有合并权限的人员来合...

2017-08-25 11:54:02 370 0

原创 剑指offer_发散思维---数值的整数次方

题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。解题思路主要涉及完整性考虑,首先按照正数次幂,负数次幂,0次幂,三种分析,底数为0和非0。 1,第一种方式,常规做法 2,第二种方式,用递归的方法,效率提高 3,第三种...

2017-08-25 11:15:48 146 0

原创 剑指offer_位运算---二进制中1的个数

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解题思路1,利用辅助数,1的位置变化的,来逐位求与 2,利用整数自身特性:举个例子:一个二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三位变成0,它后面的两位0变成了1,而前面的1保持不变,因此得到的...

2017-08-25 09:43:17 137 0

原创 【经典算法问题 二】交换两个变量值,不使用第三个变量

昨天面试的时候问到了这个,回答了异或的方式,后来自己又想了一下,总结这么几种/** * */ package test;import java.util.Stack;/** * <p> * Title:NoNeedThreeChange * </p>...

2017-08-25 09:20:36 274 0

转载 [Java多线程 十]---JUC包下线程池的理解

本篇为【Java多线程】的第十篇,也是JUC包相关的第五篇,对线程池做了一个大概的介绍,具体的一些实现和操作方式会在另一个系列阐述

2017-08-24 15:56:21 451 0

原创 【数据库策略 一】数据库索引

数据库索引的索引创建的优点第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。 第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 第四,在使用分组和排序 子句进行数据检索时...

2017-08-24 11:46:32 352 0

转载 【数据结构底层原理 一】HashMap源码分析

本文转载自http://blog.csdn.net/vking_wang/article/details/14166593HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的查找时间复杂度小,...

2017-08-24 10:34:45 212 0

原创 【Git相关知识 一】Git的常用操作

安装与配置安装Git安装包下载地址:http://msysgit.github.io/ Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。 这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方: /e...

2017-08-24 09:30:22 211 0

转载 【经典算法问题 三】N个降序数组,找到最大的K个数

蘑菇街的一道电话面试真题。转载自http://blog.csdn.net/qianhen123/article/details/46544787题目描述假定有20个有序数组,每个数组有500个数字,降序排列,数字类型32位uint数值,现在需要取出这10000个数字中最大的500个。解题思路(1)...

2017-08-24 08:36:16 362 0

原创 剑指offer_数组---替换空格

题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思路1,使用stringBuffer辅助解决 2,不使用辅助类,字符替换解决代码实现/** * */ package 字符串...

2017-08-23 20:49:12 139 0

原创 剑指offer_数组---调整数组顺序使奇数位于偶数前面

题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解题思路1,暴力遍历法,取出所有奇数放到一个数组里,取出所有偶数放到一个数组里,然后把所有奇数和偶数先后放入原数组 ...

2017-08-23 17:46:56 133 0

原创 剑指offer_数组---旋转数组的最小数字

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解题思路1,...

2017-08-23 15:42:09 210 2

原创 剑指offer_数组---二维数组中的查找

题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路1,直接用hashset 2,用技巧方法,依据递增顺序这一特点代码实现package 数组;import java...

2017-08-23 15:04:26 172 0

原创 剑指offer_递归与循环---矩形覆盖

题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?解题思路依旧是斐波那契数列 2*n的大矩形,和n个2*1的小矩形 其中target*2为大矩阵的大小 有以下几种情形: 1⃣target <...

2017-08-23 12:05:46 181 0

原创 剑指offer_递归与循环---变态跳台阶

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解题思路关于本题,前提是n个台阶会有一次n阶的跳法。分析如下: f(1) = 1 f(2) = f(2-1) + f(2-2) //f(2-2) 表示2阶一次跳...

2017-08-23 11:59:20 136 0

原创 剑指offer_递归与循环---跳台阶

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解题思路1,用递归,将问题转换为f(n)=f(n-1)+f(n-2); 2,用迭代,原理类似代码实现/** * */ package 递归和循环;/** * <p> * Tit...

2017-08-23 11:43:56 173 0

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