自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 经典面试题之字符串的全排列

1.题目描述输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,输出abc,acb,bac,bca,cab和cba2.问题分析这个问题我们一开始看起来会比较困难,但是如果仔细分析一下排列的实质,或许很快会有思路。我们来看排列的实质,字符串的abc第一个字符分别与后边的字符(含自己)交换可以得到abc,bac,cba,然后对这每一个字符串从第二个字符分别与后边的

2016-08-31 16:47:59 835

原创 经典面试题之最长滑道(2017爱奇艺内推笔试题)

1.题目描述输入输出:2.思路分析这道题实际上就是要求从最大值到最小值所能经过的最长路径,那么我们可以这么考虑,对于每一个坐标点,它到最小值的必定有一个最长路径len,那么我们只要找出所有坐标点到最小值的最长路径,然后再从中找到最大值即为所求答案。这样,我们的问题就只剩下如何求一个坐标点到最小值的最大长度len,很快我们发现每个坐标点的len必定是其上下左右坐标

2016-08-29 20:08:00 3684

原创 经典面试题之两个链表的第一个公共结点

题目描述:输入两个链表,找出它们的第一个公共结点。我们先看下边这个图:对于单向链表而言,从两个单链表第一个公共结点开始,之后它们的所有结点都是重合的,不可能再出现分叉。对于题目,我们最简单的想法就是在第一个链表上顺序遍历每个结点,每遍历到一个结点时,在第二个链表上顺序遍历每个结点,直到找到公共顶点,但是这样的时间复杂度为O(mn)。实际上,我们上边单链表的特点可以知道,可以采取

2016-08-28 17:44:53 1184

原创 经典面试题之数组中的逆序对

1.题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%10000000072.解题思路这道题主要是归并排序思想的应用,如果对归并排序不了解,请先看http://blog.csdn.net/sinat_30186009/artic

2016-08-23 10:44:19 351

转载 数据库设计范式详解

原文详见:https://www.zhihu.com/question/24696366/answer/29189700   原文作者:刘慰1.第一范式第一范式要求关系中的每个属性不可再分,下图就不符合1NF修改为下图后则满足1NF2.第二范式我们先来看这么一个例子,有如下这样一个表:仔细查看,容易发现这么几个问题:1.每一名学生的学号、姓名、系名、系主任这

2016-08-22 20:42:51 506 1

原创 Java跨平台的原理

1.Java编译过程与C/C++编译过程的差异C/C++编译器生成一个对象的代码时,该代码是在某一特定硬件平台下运行而生成的。因此在编译过程中,编译程序通过查表将所有对符号的引用转换为特定的内存偏移量,以保证程序运行。Java编译时却不将对变量和方法的引用编译为数值引用,也不确定程序执行过程中的内存布局,而是将这些符号引用信息保留在字节码中,由解释器在运行过程中创建内存布局,然后再通过查表

2016-08-21 23:34:49 3448

原创 图之最短路径之迪杰斯特拉算法

一般最短路径算法有迪杰斯特拉算法和弗洛伊德算法,对于有负权值的需要使用弗洛伊德算法,这里主要讲解迪杰斯特拉算法1.算法思想设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后每求得一条最短路径 , 就将加入到集合S中,直到全部顶点都加入到S中,算法就结束了),第二组为其余未确定最短路径的顶点集合(用U表示),按

2016-08-17 16:52:40 690

原创 数据结构之最小生成树

1.最小生成树给定一个带权的无向连通图,如何选取一棵生成树,使树上所有边上权的总和为最小,这叫最小生成树最小生成树的算法有普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法应用场景:要在n个城市之间铺设光缆,主要目标是要使这 n 个城市的任意两个之间都可以通信,但铺设光缆的费用很高,且各个城市之间铺设光缆的费用不同,因此另一个目标是要使铺设光缆的总费用最低2.普里姆(Prim

2016-08-11 23:19:08 772

原创 数据库索引详解

1.什么是索引?索引的常见类型有什么?索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。分类:这里我们主要介绍常见的聚集索引和非聚集索引聚集索引:对正文内容按照一定规则排列的目录称为聚集索引非聚集索引:目录自己按照一定规则排列,正

2016-08-10 15:46:27 13403 1

原创 经典面试题之求连续子数组最大和

输入一个整形数组(元素可能为正为负),求数组中连续的子数组使其和最大,打印出子数组思路:这道题主要要明白两个点,第一,需要设置一个变量max保存当前的最大值,另外一个变量sum记录不断增加元素之后的总和          第二,如果sum+array[i]>0,sum=sum+array[i],否则就是sum=array[i]。因为如果一个新元素加上之后使得sum         但如

2016-08-09 20:15:04 448

原创 设计模式之责任链模式

责任链模式使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止结构图简述:下列代码描述了一种福场景,经理、总监和总经理可以处理的请求范围代码:public abstract class Manager { protected String name; protected Man

2016-08-08 20:47:55 290

原创 数据结构系列之平衡二叉树

1.基本介绍平衡二叉树是一种特殊的二叉查找树,其左右子树都是平衡二叉树,且高度差的绝对值不超过1如何使二叉查找树在添加数据的同时保持平衡呢?基本思想就是:当在二叉排序树中插入一个节点时,首先检查是否因插入而破坏了平衡,若破坏,则找出其中的最小不平衡二叉树,在保持二叉排序树特性的情况下,调整最小不平衡子树中节点之间的关系,以达到新的平衡。所谓最小不平衡子树 指离插入节点最近且以平衡因

2016-08-07 17:16:22 525

原创 排序序列之直接插入排序与希尔排序

1.直接插入排序思想:将每个数字当作插入一个已经有序的数组中,则只需要找到比该数字大的第一个数字b,从b及其之后的每个数字都往后移动一位,将新数字插入到b原来的位置即可代码:import java.util.*;public class Main{ public static void main(String[] args) { Scanner sc=new Scan

2016-08-03 21:08:01 289

原创 二叉查找树

1.基本概念二叉查找树又称二叉排序树,特点是左子树全部小于根节点,右子树全部大于根节点2.生成二叉排序树,插入节点,查找节点,删除节点查找节点的思路:如果当前节点的值大于要查找节点的值,则与当前节点的左孩子比较,否则与右孩子比较,循环迭代插入节点的思路:当前二叉排序树已存在该值的节点,插入失败,返回false,要插入的节点的值小于当前节点的值,则与当前节点的左孩子比较,否则与右

2016-08-01 22:57:50 250

空空如也

空空如也

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

TA关注的人

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