Java基础

1.String,StringBuffer和StringBulider String是字符串常量,StringBuffer和StringBuilder都是字符串变量。 String类型是不可改变的对象,由于这种机制,每当用String对字符串做拼接时,实际上是在不断的创建新的对象,而原来的对象...

2018-09-18 10:31:28

阅读数 33

评论数 0

“二叉树的深度”和“平衡二叉树”

题目描述 二叉树的深度: 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 二叉树的节点定义如下: public class TreeNode { int val = 0; TreeNode left...

2018-09-10 09:38:35

阅读数 560

评论数 0

输入一个网址后发生了什么

当你在浏览器输入一个网址,如http://www.taobao.com,按回车之后发生了什么?请从技术的角度描述,如浏览器、网络(UDP、TCP、HTTP等),以及服务器等各种参与对象上由此引发的一系列活动,请尽可能的涉及到所有的关键技术点。 1.DNS解析 DNS解析的过程就是寻找哪台机器上...

2018-09-09 13:42:40

阅读数 1602

评论数 0

“和为S的两个数字”和“和为S的连续正数序列”

题目描述 和为S的两个数字: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,输出两个数,小的先输出。 因为给出的数组是排好序的,所以我们就可以在有序数组中放两个指针用于查找符...

2018-09-09 09:36:42

阅读数 37

评论数 0

序列化二叉树

题目描述 请实现两个函数,分别用来序列化和反序列化二叉树。 根据树的前序遍历序列和中序遍历序列可以唯一的构造出一棵二叉树。受此启发,我们可以先把一棵二叉树序列化成一个前序遍历序列和中序遍历序列,然后在反序列化时通过这两个序列重构出原二叉树。 这种思路有两个缺点:一是该方法要求二叉树中不能有重...

2018-09-08 21:09:58

阅读数 83

评论数 0

连续子数组的最大和

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

2018-09-05 23:06:04

阅读数 322

评论数 0

对称的二叉树

题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 例如,在下图所示的三棵二叉树中,第一棵二叉树是对称的,而另外两棵不是。 我们通常有3种不同的二叉树遍历算法,即前序遍历、中序遍历和后序遍历。在这三种遍历算法中,都是先...

2018-09-02 17:56:02

阅读数 47

评论数 0

二叉树的镜像

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

2018-09-02 16:25:15

阅读数 141

评论数 0

两个链表的第一个公共节点

问题描述 输入两个链表,找出它们的第一个公共结点。 含有公共节点的两个链表的结构类似于下图中的链表: 可以看到两个链表中有一个公共节点,其中橙色的节点就是这两个链表的公共节点。   看到这个题目,容易想到的方法是使用蛮力法解决:在第一个链表上顺序遍历每一个节点,每遍历到一个节点,就在第...

2018-09-02 15:34:28

阅读数 774

评论数 0

链表中环的入口节点

问题描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 有环链表类似于下图中的链表: 可以看到该链表中有一个环,其中橙色的节点就是这个链表中环的入口节点。  解决这个问题可以分三步。 (1)第一步是确定一个链表中是否包含环。我们可以用两个指针来解决这个问...

2018-09-02 13:44:11

阅读数 353

评论数 0

判断链表是否有环?

题目描述 有一个单向链表,链表当中有可能出现“环”,就像下图这样。如何用程序判断出这个链表是有环链表?  方法一:首先从头节点开始,依次遍历单链表的每一个节点。每遍历到一个新节点,就从头节点重新遍历新节点之前的所有节点,用新节点ID和此节点之前所有节点ID依次作比较。如果发现新节点之前的所...

2018-09-02 11:03:52

阅读数 62

评论数 0

Bitmap算法简介

Bitmap算法中文又叫做位图算法。那么什么是Bitmap算法呢? 位图算法中的位图是内存中连续的二进制位(bit),用于对大量整形数据做去重和查询。 举个例子,给定一块长度是10bit的内存空间,想要依次插入整形数据4,2,1,3。我们需要怎么做呢? 1. 给定长度是10的bitmap,每...

2018-09-01 23:23:16

阅读数 1288

评论数 0

BitSet的应用

1.BitSet介绍 BitSet是用于存储二进制位和对二进制进行操作的Java数据结构,BitSet从jdk1.0开始就有了。它存储的是二进制位在BitSet中状态,根据对这些状态的判断,可以有很多应用。以前对数据的操作都是先把数据都是存储在内存中间的,现在可以通过设置BitSet的相应位达到...

2018-09-01 22:32:28

阅读数 519

评论数 0

BitSet的实现原理

1.BitSet介绍 Bitset是Java中的一种数据结构。Bitset中主要存储的是二进制位,做的也都是位运算,每一位只用来存储0,1值,主要用于对数据的标记。 Bitset的基本原理是,用1位来表示一个数据是否出现过,0为没有出现过,1表示出现过。使用的时候可以根据某一个位是否为0表示此...

2018-08-31 15:19:35

阅读数 4813

评论数 0

反转链表

题目描述 输入一个链表,反转链表后,输出新链表的表头。 链表的数据结构如下: public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val =...

2018-08-30 12:36:31

阅读数 36

评论数 0

青蛙变态跳台阶问题

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 分析:因为n级台阶,第一步有n种跳法:跳1级、跳2级、到跳n级 跳1级,剩下n-1级,则剩下跳法是f(n-1) 跳2级,剩下n-2级,则剩下跳法是f(n-2) 所以f(...

2018-08-29 23:17:21

阅读数 332

评论数 0

青蛙跳台阶问题

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 首先我们考虑最简单的情况。如果只有1级台阶,那显然只有一种跳法。如果有两级台阶,那就有两种跳法:一种是分两次跳,每次跳1级;另一种就是一次跳2级。 接着我们再谈论...

2018-08-29 21:41:45

阅读数 670

评论数 0

MYSQL存储引擎

1.什么是存储引擎?有什么作用? MySQL是用来保存数据的,MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者特定的功能,从而改善你的应用的整...

2018-08-29 16:25:48

阅读数 94

评论数 0

MYSQL索引

1.什么是索引?怎么样创建索引? 索引是对数据表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。 (1)直接创建索引 CREATE INDEX index_name ON table(column(length)) (2)修改表结构的方式添加索引 ALTE...

2018-08-29 14:42:44

阅读数 48

评论数 0

数据库中的事务

1.事务的特性:ACID 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: (1)原子性( Atomicity):事物作为单个逻辑单元执行的一组操作, 事务中的所有操作要么全部执行成功,要么全部执行失败。要么全都执行,要么全都不执行。 (2)一致性(Consistenc...

2018-08-29 12:28:01

阅读数 64

评论数 0

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