自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 关系型数据库与非关系型数据库总结

关系型数据库:     简介:建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。强调实体和实体之间的联系。             优点:1.      保持数据的一致性(最大优势)2.      数据更新开销小(数据表设计满足范式规范,相同的字段基本上只保留一处)3.      可以进行表间级联Join等复杂操作

2015-07-09 21:23:22 517

原创 用两个栈实现一个队列

常规解法:两个栈A和B,模拟队列,入队、出队操作 入队时,将元素压入A, 出队时,将A中元素逐个弹出并压入B,将B的栈顶元素弹出作为出队元素,之后将B中剩下的元素逐个弹出并压入A。一种小改进:入队时,先判断A是否为空,如果不为空,说明元素都在A,此时将入队元素直接进栈到A;如果为空,将B中元素弹出并进栈到A,然后在压入元素; 出队时,先判断B是否为空,如果不为空,直接弹出B栈栈顶元素;如果为空

2015-08-17 21:41:08 257

原创 后序遍历二叉树

递归方法和之前的几乎一致,不再赘述。考虑非递归方法: 后序遍历顺序是:左,右,根 即左孩子和右孩子都遍历输出了之后,才遍历子树的根节点。public ArrayList<Integer> postorderTraversal(TreeNode root) { ArrayList<Integer> lst = new ArrayList<Integer>();

2015-08-16 23:22:08 277

原创 二叉树中序遍历

中序遍历二叉树: 遍历顺序:左,根,右 首先遍历左子树,直到遇到第一个没有左子树的节点,输出,然后遍历右子树。递归算法比较简单,和先序遍历差别不大。public static List<Integer> inorderTraversal(TreeNode root) { if(root == null) return Collections.EMPTY_LIST;

2015-08-16 22:52:56 366

原创 先序遍历二叉树

递归方式先序遍历二叉树: 遍历顺序:根,左,右public static List<Integer> preorderTraversal(TreeNode root) { if(root == null) return Collections.EMPTY_LIST; List<Integer> list = new ArrayList<Int

2015-08-16 22:30:50 255

原创 LeetCode:Add Digits

Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.For example:Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digit, r

2015-08-16 20:55:20 411

原创 二叉树遍历实现:递归和非递归

上一个求二叉树公共祖先节点的题用到了后序遍历,临时想起来就总结一下,常见的二叉树遍历方式吧,主要有,先序遍历,中序遍历、后序遍历和层序遍历,每种遍历方式的实现主要有两种:递归和非递归。其中,非递归算法主要用到了栈和队列(层序遍历)代码如下,忘了的时候可以看看。import java.util.LinkedList;public class BinaryTree { //根节点 pr

2015-08-15 23:51:14 192

原创 LeetCode:Lowest Common Ancestor of a Binary Tree

Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree.According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes v a

2015-08-15 23:39:37 235

原创 LeetCode:Number of 1 Bits

Write a function that takes an unsigned integer and returns the number of ’1’ bits it has (also known as the Hamming weight).For example, the 32-bit integer ’11’ has binary representation 0000000000000

2015-08-15 17:16:51 188

原创 LeetCode:Single Number

Given an array of integers, every element appears twice except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it without using extra memo

2015-08-14 22:37:29 228

原创 LeetCode:Maximun Depth of Binary Tree二叉树深度

主要思路: (1)深度优先搜索DFS; (2)递归需要考虑的问题(递归结束条件,递归返回值) (3)算法简单,性能一般。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode rig

2015-08-14 21:43:53 236

原创 LeetCode: Spiral Matrix螺旋矩阵

基本思路: (1)模拟遍历过程 ①从左往右matrix[rowstart][i] ②从上往下matrix[i][colend] ③从右往左matrix[rowend][i] ④从下往上matrix[i][colstart] (2)判断结束条件; (3)记得输入合法性判

2015-08-14 21:14:06 247

原创 HashMap实现原理

面试的时候经常遇到会问某种Java集合的实现原理,觉得其中最长问到的应该是HashMap,所以详细学习一下。HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模

2015-08-14 17:21:45 192

原创 Java与C++的区别

①编译运行过程不同(解释执行 + 跨平台)②面向对象(无全局变量和函数)③封装指针为引用类型(安全、需要考虑类型、跳转、初始值等)④不支持多继承(单继承 + 实现多接口)⑤内存管理(自动回收 v.s 析构函数)⑥没有运算符重载、平台无关性

2015-08-14 10:55:03 192

原创 Java引用和C指针的区别

①引用是值为地址的数据元素,而指针是一个装地址的变量;②引用是有类型的,其类型转换可能不成功,指针只是一个地址;③引用的初始值是null,指针的初始值不一定;④引用不能直接计算,指针可以计算跳转;⑤引用不用主动回收,指针需要主动回收。

2015-08-14 10:50:59 400

原创 为什么使用序列化和反序列化

首先需要了解什么是序列化:一般程序运行时,产生对象,这些对象随着程序的停止而消失,但如果我们想把某些对象保存下来,在程序终止运行后,这些对象仍然存在,可以在程序再次运行时读取这些对象的值,或者在其他程序中利用这些保存下来的对象,这种情况下就要用到对象的序列化。知道了序列化的作用,我们会想到,为什么要用序列化呢?一座大厦好比一个对象,你要把这座大厦搬到另一个地方去,你想直接挪肯定不行吧?(一般来说,

2015-08-01 21:37:13 1391

原创 一个01发生器,产生0和1不均匀,怎么设计使得它产生均匀的01序列

1.有一个随机数发生器,能以概率p生成0,以概率1-p生成1,问如何做一个随机数发生器 使得生成0和1的概率相等。 2.用上面那个生成0和1的概率相等的随机数发生器,怎样做一个随机数发生器使得它生成 的数在1…N之间均匀分布。 第一题比较简单,可以用原发生器周期性地产生2个数,直到生成01或者10。 由于生成01和10的概率均为p(1-p),故预先任意指定01为0(或1),10为1(

2015-07-26 00:10:06 1558

原创 判断有环的链表相交和第一个公共节点(全面)

最常见的解法: 单链表有公共节点,则必定是Y状而不是X状的。 遍历得到两个链表的长度,长链表长度m,短链表长度n,则长链表先走m-n步,然后两个链表同时逐步遍历,比较是否有相同节点。第二种方法: 将一个链表的表尾指向另一个链表的表头,如果两个链表相交,则会形成环,否则没有环,因此转换成判断是否有环,即通过快指针和慢指针,判断快慢指针是否相等判断是

2015-07-24 17:06:46 500

原创 单链表逆序--递归算法

非递归的单链表逆序比较简单,只需要注意三个问题: 1、保存从单链表上拆下的节点; 2、保存当前在链表上的节点,保证不断链; 3、判断循环结束条件。而基于递归的单链表逆序算法,需要注意两个问题:拆和装 因为本质上递归过程是一个逐层深入、逆序返回的过程,因此,只需要考虑两个条件,即逐层深入时候需要做什么操作和返回过程中需要做什

2015-07-24 16:26:15 1478

原创 单链表逆序--非递归算法

初始状态: prev = null; head = head; next = head.next;//保证不断链 开始逆序: head.next = prev;//不会断链,next保持在链上(最后一个节点指向null) prev = head; head = next;

2015-07-24 15:48:58 447

原创 UseCase中include和extend的区别

比较基础的东西,不过还是说明一下:UML用例图中include与extend的区别最近上论坛,看到在争论UseCase中include与extend的区别。其实这两者是很容易区分的。include是指用例中的包含关系,通常发生在多个用例中,有可以提取出来的公共部分(就象提取公因式一样),例如UseCaseA中包括了a和b两个流程,而UseCaseC中包含了c和b两个流程。为了提高复

2015-07-24 10:01:39 1324

翻译 Web服务器与应用服务器的区别

一.简述WEB服务器与应用服务器的区别:1.WEB服务器:理解WEB服务器,首先你要理解什么是WEB?WEB你可以简单理解为你所看到的HTML页面就是WEB的数据元素,处理这些数据元素的应用软件就叫WEB服务器,如IIS、apache。 WEB服务器与客户端打交道,它要处理的主要信息有:session、request、response、HTML、JS、CS等。

2015-07-23 10:54:15 211

原创 Java 字符串移位

实现功能:实现字符串的移位操作详述: 例如,“abcdefgh”循环右移5位得到“defghabc”方法一:按位右移(空间复杂度O(1); 时间复杂度O(n*n)) 移动1位:habcdefg 移动2位:ghabcdef 移动3位:fghabcde 移动4位:efghabcd 移动5位:defghabc方法二:按移动位置切片(空间复杂度O(n);时间复杂度O(n)) “abcdefgh”

2015-07-22 16:18:47 901

原创 JAVA 字符串移位

实现功能:字符串移位

2015-07-22 16:03:57 420

原创 OpenGIS全面综述

(一)什么是OpenGIS(开放的地理数据互操作规范) ?Google Map 以及 微软的 Virtual Earth(1)     什么是GIS(Geography Information System地理信息系统)? a)        是一种具有信息系统空间专业形式的数据管理系统,负责集中、操作和显示地理参考信息; b)       专门用于采集、存储、管理、分

2015-07-21 22:28:44 1235

原创 java7动态类型支持

JDK 7与动态类型现在,我们回到本专栏的主题,来看看Java语言、虚拟机与动态类型语言之间有什么关系。Java虚拟机毫无疑问是Java语言的运行平台,但它的使命并不仅限于此,早在1997年出版的《Java虚拟机规范》第一版中就规划了这样一个愿景:“在未来,我们会对Java虚拟机进行适当的扩展,以便更好的支持其他语言运行于Java虚拟机之上”。而目前确实已经有许多动态类型语言运行于Java

2015-07-20 22:48:45 302

原创 C语言用结构体模拟类的功能

之前一直觉得C语言里面的结构体和C++里面的类有千丝万缕的联系,和同事们谈论时候总因为这个被喷,回来仔细研究了一下。/********* first.h *********/#ifndef __FIRST__H_H#define __FIRST__H_H//打开TYPE__A 或 TYPE__B的作用是相同的//#define TYPE__A#define TYPE__B

2015-07-20 20:59:37 726

原创 匿名内部类总结和例子

匿名内部类也就是没有名字的内部类正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 实例1:不使用匿名内部类来实现抽象方法12345678910111213

2015-07-20 17:07:18 266

原创 单机数据库,集群数据库,分布式数据库的概念和比较

单机数据库: 简介: 只能运行在单机上,不能提供网络功能的数据库。实现数据采集、保存、管理功能,实现信息共享、避免交叉采集数据。优点:1. 减少数据冗余,节省存储空间方便数据查询和管理实现数据资源共享方便编写数据库相关应用程序缺点: 1. 不能进行网络通信串行处理数据请求单机存在性能瓶颈随着业务规模扩大和联机事务增加性能大幅下降单机数据库的比较: 数据库

2015-07-10 08:37:50 4601

转载 分布式数据库数据的拆分方式

一个大型系统里各个环节中最容易出性能和可用性问题的往往是数据库,因此分布式设计与开发的一个重要领域就是如何让数据层具有可扩展性,数据库的扩展分为Scale Up 和Scale Out,而Scale Up说白了是通过升级服务器配置来完成,因此不在分布式设计的考虑之内。Scale Out是通过增加机器的方式来提升处理能力,一般需要考虑以下两个问题:数据拆分数据库高可用架构数据拆分是最先

2015-07-09 21:19:55 615

汇编输入三门成绩按总分排序

输入三门学生成绩,姓名学号,输出按总分排序,还可按姓名查找学生信息。

2010-06-11

空空如也

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

TA关注的人

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