自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(72)
  • 收藏
  • 关注

转载 22.从上往下打印二叉树 Java

题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。解题思路就是二叉树的层序遍历。借助一个队列就可以实现。使用两个队列一个存放节点,一个存放值。先将根节点加入到队列中,然后遍历队列中的元素,遍历过程中,访问该元素的左右节点,再将左右子节点加入到队列中来。注意Queue创建的方式:Queue<TreeNode> queue = new LinkedList...

2019-03-27 09:40:00 112

转载 21.栈的压入、弹出序列 Java

题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路定义两个变量in、out分别代表入栈序列数组下标和出栈序列数组下...

2019-03-26 13:38:00 109

转载 20.包含min函数的栈 Java

 题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。思路借助辅助栈实现: 压栈时:若辅助栈为空,则将节点压入辅助栈。否则,当当前节点小于等于辅助栈栈顶元素时将节点压入辅助栈。 出栈时:若辅助栈和数据栈栈顶元素相同,则同时出栈。否则,只出栈数据栈元素。代码import java.util.Sta...

2019-03-21 09:31:00 94

转载 19.顺时针打印矩阵 Java

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 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.解题思路先得到矩阵的行和列数,然后依次旋转打印数据,一次旋转打印结束后,往对角分别前进和后退一...

2019-03-20 11:17:00 88

转载 18.二叉树的镜像 Java

题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...

2019-03-19 10:50:00 74

转载 17.树的子结构 Java

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)思路双递归:外层HasSubtree是一个先根遍历递归,内层isDirectSubTree是一个判断root2是不是root1的直接子结构的递归。步骤如下: 1.如果当前root1和root2的节点值相同,则可能为子结构,进入子递归判断。 2.若上一步找到子结...

2019-03-18 13:23:00 88

转载 16.合并两个排序的链表 Java

题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解题思路两种解法:递归和非递归参考代码/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = ...

2019-03-15 10:11:00 57

转载 15.反转链表 Java

题目描述输入一个链表,反转链表后,输出新链表的表头。思路本题的关键就是在于对next域的赋值,同时对下一个节点进行保存,然后对把下一个节点赋给新的节点,这样依次循环完所有的节点。每次使新插入的节点变成头第一个有效节点。public ListNode ReverseList(ListNode head) { if (head == null) { ...

2019-03-14 17:04:00 74

转载 14.链表中倒数第k个结点 Java

题目描述输入一个链表,输出该链表中倒数第k个结点。思路快指针和慢指针,快指针先跑K个单位然后慢指针开始跑,快指针跑到最后一个节点的时候慢指针对应的就是链表中倒数第k个结点public static ListNode findKthNode(ListNode head, int k) { if (head == null || k == 0) { ...

2019-03-14 15:39:00 63

转载 13.调整数组顺序使奇数位于偶数前面 Java

思路两次遍历,第一次把奇数加到list中,第二次把偶数加到list中,时间复杂度为O(n)。利用类似于插入排序的方法,但时间复杂度为O(n^2)。代码import java.util.ArrayList;import java.util.List;public class Solution { public void reOrderArra...

2019-03-14 13:24:00 65

转载 12.数值的整数次方 Java

题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。这道题看似简单,其实BUG重重。要注意的问题:  1 关于次幂的问题特殊的情况,比如次幂为负数,或者基数为0时等等复杂的情况  2机器中浮点数的比较是有误差的,因此double类型的比较,不能用简单的a==0来比较。一般的比较方式是,相减的差在一个...

2019-03-14 12:53:00 73

转载 11.二进制中1的个数 Java

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路当n不等于0时执行以下循环: 1.判断n的最低位是否为1,若为1,则计数器加1 2.将n无符号右移1位(若使用带符号移位,如果n为负数,左边会一直补1而进入死循环。)public static int countOneNum(int n) { int count = 0; wh...

2019-03-14 11:12:00 67

转载 10.矩形覆盖 Java

题目描述我们可以用2**1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2n的大矩形,总共有多少种方法?思路其实,倒数第一列要么就是1个2**1的矩形竖着放,要么就是2个横着放的。如果是竖着放的,那么剩下的就是n-1个小矩形,放法是F(n-1)种;如果是横着放的,放法就是F*(n-2)。这样子看,其实这个就是前面的跳台阶问题。...

2019-03-13 14:33:00 72

转载 09.变态跳台阶 Java

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路0:01:(1)2:(1,1)(2)3:(1,1,1)(2,1)(1,2)(3)4:(1,1,1,1)(2,1,1)(1,2,1)(3,1)(1,1,2)(1,3)(2,2)(4)显然,除了0,其他都是2^(n-1);OJ并未检...

2019-03-13 13:41:00 94

转载 08.青蛙跳台阶 Java

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。思路暴力枚举(自顶向下递归): 若台阶数小于等于0,返回0; 若台阶数为1,返回1;(1) 若台阶数为2,返回2;(1,1),(2) 否则,返回F(n-1)+F(n-2);(因为下一步只能是跳1级或者跳2级)备忘录算法(自...

2019-03-13 13:36:00 96

转载 07.斐波那契数列 Java

题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39思路递归 若n<=2;返回n; 否则,返回Fibonacci(n-1)+Fibonacci(n-2);递推 拿两个变量记录上两个值和一个临时变量记录当前相加结果即可 递归的方法可能会遇到Stack Overflow,所...

2019-03-12 17:00:00 86

转载 06.旋转数组的最小数字 Java

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

2019-03-12 15:38:00 60

转载 05.用两个栈实现队列 Java

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路进栈: 直接进stack1出栈: 若stack2不为空,则出栈。 否则,当stack1不为空时,将stack1中的元素依次出栈并压人stack2中。最后,弹出stack2的栈顶元素。package com.sysword.algo;import java.uti...

2019-03-12 14:52:00 58

转载 04.重建二叉树 (Java)

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路先根遍历序列pre:1,2,4,7,3,5,6,8中根遍历序列in:4,7,2,1,5,3,8,6采用递归 取pr...

2019-03-12 09:00:00 68

转载 03.从尾到头打印链表 (Java)

题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。思路采用递归: 若当前节点不为空,则递归其后继节点,并将当前节点加入list中。采用数据结构栈实现: 利用栈“后进先出”特性利用ArrayList的public void add(int index, E element): 从前往后遍历,每次插在list的最前面位置。//...

2019-03-11 15:00:00 71

转载 02.替换空格 (Java)

题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路感觉这题对于Java意义不大,直接库函数。代码public class Solution { public String replaceSpace(StringBuffer str)...

2019-03-11 14:28:00 50

转载 01.二维数组中的查找 (Java)

题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路从二维数组的左下角开始遍历: 若查找的目标值小于当前遍历值,则向上查找; 若查找的目标值大于当前遍历值,则向右查找; 若命中,则返回true;...

2019-03-11 14:13:00 63

转载 css - em

pixels/16=emAll CSS Pseudo Elements::afterp::afterInsert something after the content of each <p> element::beforep::beforeInsert something before the content of...

2019-01-09 15:10:00 68

转载 CSS Selectors

CSS selectors are used to "find" (or select) HTML elements based on their element name, id, class, attribute, and more.p, h1 {color: red;}id选择器#id {}class选择器.class {...

2019-01-09 09:36:00 70

转载 Golang Singleton

package exampleimport ( "fmt" "sync")var m *singletonvar once sync.Oncefunc GetInstance() *singleton { once.Do(func() { m = &singleton{} }) return m}type singleton struct{}func...

2018-12-18 09:28:00 121

转载 TL;DR

英文文章中,偶尔会出现TL;DR的字符。TL;DR=>Too Long; Don’t Read=>太长了,读不下去=>长话短说一般用于在文章开头先给出干货。转载于:https://www.cnblogs.com/feicheninfo/p/10112523.html...

2018-12-13 10:23:00 112

转载 go get

E:\go\package\src\golang.org\x>git clone https://github.com/golang/crypto.gitgo get ./...转载于:https://www.cnblogs.com/feicheninfo/p/10106677.html

2018-12-12 09:43:00 62

转载 golang string、int、int64 float 互相转换

#string到int int,err := strconv.Atoi(string) #string到int64 int64, err := strconv.ParseInt(string, 10, 64) //第二个参数为基数(2~36),//第三个参数位大小表示期望转换的结果类型,其值可以为0, 8, 16, 32和64,//分别对应 int, int8, int16, ...

2018-11-21 15:02:00 195

转载 Thrift支持的基本数据类型

'bool' | 'byte' | 'i8' | 'i16' | 'i32' | 'i64' | 'double' | 'string' | 'binary' | 'slist'(deprecated)list | map | set转载于:https://www.cnblogs.com/feicheninfo/p/9719087.html

2018-09-28 15:48:00 642

转载 双亲委派模型

双亲委派模型要求除了启动类加载器以外的加载器都要有父类加载器,且子加载器要通过组合复用父加载器的代码,在某个类加载器需要加载类时,先要用父类加载器加载,依次递归到启动类加载器。如果各层加载器加载不了(它的搜索范围中找不到此类),子加载器才会尝试加载这个类。转载于:https://www.cnblogs.com/feicheninfo/p/9711583.html...

2018-09-27 10:03:00 43

转载 CountDownLatch和CyclicBarrier的比较

1.CountDownLatch是线程组之间的等待,即一个(或多个)线程等待N个线程完成某件事情之后再执行;而CyclicBarrier则是线程组内的等待,即每个线程相互等待,即N个线程都被拦截之后,然后依次执行。2.CountDownLatch是减计数方式,而CyclicBarrier是加计数方式。3.CountDownLatch计数为0无法重置,而CyclicBarrier计...

2018-09-26 16:13:00 79

转载 适配\装饰\代理

适配:强调接口兼容性,把旧接口转换成新接口装饰:强调增强,新接口增强旧接口,用于扩展,装饰类需传入被装饰类实例代理:强调隔离,新旧接口需一致转载于:https://www.cnblogs.com/feicheninfo/p/9706755.html...

2018-09-26 14:37:00 53

转载 SQLite索引

索引(Index)是一种特殊的查找表,数据库搜索引擎用来加快数据检索。简单地说,索引是一个指向表中数据的指针。一个数据库中的索引与一本书后边的索引是非常相似的。例如,如果您想在一本讨论某个话题的书中引用所有页面,您首先需要指向索引,索引按字母顺序列出了所有主题,然后指向一个或多个特定的页码。索引有助于加快 SELECT 查询和 WHERE 子句,但它会减慢使用 UPDATE ...

2018-09-25 16:01:00 61

转载 GC详解

GC,即就是Java垃圾回收机制。目前主流的JVM(HotSpot)采用的是分代收集算法。与C++不同的是,Java采用的是类似于树形结构的可达性分析法来判断对象是否还存在引用。即:从gcroot开始,把所有可以搜索得到的对象标记为存活对象。GC机制要准确理解Java的垃圾回收机制,就要从:“什么时候”,“对什么东西”,“做了什么”三个方面来具体分析。第一:“什么时候”即就是...

2018-09-21 09:50:00 108

转载 Minor GC ,Full GC 触发条件

Minor GC触发条件:当Eden区满时,触发Minor GC。Full GC触发条件:(1)调用System.gc时,系统建议执行Full GC,但是不必然执行(2)老年代空间不足(3)方法去空间不足(4)通过Minor GC后进入老年代的平均大小大于老年代的可用内存(5)由Eden区、From Space区向To Space区复制时,对象大小大于To Spa...

2018-09-21 09:43:00 51

转载 GC的判定的2种方式

对象是否死亡的2中判定方法:引用计数和可达性分析(又称引用链)1.引用计数 对象再被创建时,对象头里会存储引用计数器,对象被引用,计数器+1;引用失效,计数器 -1;GC时会回收计数器为0的对象。但是JVM没有用这种方式,因为无法判定相互循环引用(A引用B,B引用A)的情况,无法解决对象互相循环引用。2.引用链 程序把所有的引用看作图(类...

2018-09-21 09:12:00 229

转载 堆里面的分区:Eden,Survivor(from+ to),老年代,各自的特点

堆里面分为新生代和老生代(java8取消了永久代,采用了Metaspace),新生代包含Eden+Survivor区,survivor区里面分为from和to区,内存回收时,如果用的是复制算法,从from复制到to,当经过一次或者多次GC之后,存活下来的对象会被移动到老年区,当JVM内存不够用的时候,会触发Full GC,清理JVM老年区当新生区满了之后会触发YGC,先把存活的对象放...

2018-09-21 09:01:00 383

转载 内存模型以及分区,需要详细到每个区放什么

方法区:主要是存储类信息,常量池(static常量和static变量),编译后的代码(字节码)等数据堆:初始化的对象,成员变量 (那种非static的变量),所有的对象实例和数组都要在堆上分配栈:栈的结构是栈帧组成的,调用一个方法就压入一帧,帧上面存储局部变量表,操作数栈,方法出口等信息,局部变量表存放的是8大基础类型加上一个应用类型,所以还是一个指向地址的指针本地...

2018-09-21 08:51:00 131

转载 Jdk1.7 与 jdk1.8的区别

在jdk7的新特性方面主要有下面几方面的增强:1.1二进制变量的表示,支持将整数类型用二进制来表示,用0b开头。 所有整数int、short、long、byte都可以用二进制表示:byte aByte = (byte) 0b00100001;1.2 Switch语句支持String类型。1.3 Try-with-resource语句: 参考博客:t...

2018-09-20 15:28:00 132

转载 解析XML的几种方式:DOM、SAX、PULL

DOM解析解析器读入整个文档,然后构建一个主流内存的树结构,然后代码就可以使用dom接口来操作这个树结构。优点:整个文档树在内存中,便于操作;支持删除、修改、重新排列等多种功能。通过树形结构存取xml文档。可以随时访问到某个节点的相邻节点。缺点:将整个文档调入内存(包括无用的节点),浪费时间和空间。适用于: 一旦解析了文档还需多次访问这...

2018-09-20 15:11:00 97

空空如也

空空如也

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

TA关注的人

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