自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 问答 (10)
  • 收藏
  • 关注

原创 二叉树基本知识(总结)

二叉树在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树T,如果

2015-04-26 17:55:11 460

原创 删除链表节点(链表倒置)

import java.util.Stack;class Nodes{ int data ; Nodes next; Nodes(){} Nodes(int data) { this.data = data; this.next = null; }}class LinkeNodes{ //create publi

2015-04-24 16:55:01 375

原创 打印1到最大的n位数

题目:输入数字n,按顺序打印从1、2、3….到最的n位数的十进制数。如输入3,打印1、2、3….999.注意问题: 1、n<=0 2、大数问题,n位数的最大值,可能超过long范围,发生越界,解决办法是用字符串或者数组存放数。解决办法一://打印1、2、3...最大的n位数 static void print1ToMaxOfDigits(int n){ if(n<=0)

2015-04-24 14:50:04 383

原创 数字的整数次方

题目:实现double Power(double base,int expoent),求base的expoent次方。不得使用库函数,同时不用考虑大数问题。 注意的问题: 1、底数为零的情况 2、指数为负数的情况 3、指数为零 实数(float、double)不能直接用==,因为计算机计算有误差,如果两个数差的绝对值很小,如小于0.0000001,这认为相等。a的n次方的数学公式://数字

2015-04-24 09:45:26 631

原创 高质量的代码

1、代码规范性: 1)、清晰的书写 2)、清晰的布局 3)、合理的命名 2、代码完整性 1、从三个方面确保完整性 1)、功能测试:看要求的功能是否实现 2)、边界测试:对临界的条件的测试看是否正确合理,如基于循环的看循环的边界条件是否正确,基于递归的看递归终止的条件是否正确。 3)、负面测试:错误的输入是否有合理的处理。 2、三种错误的处理方式

2015-04-24 09:35:16 317

原创 位运算

位运算有五种:与、或、异或、左移、右移;与(&):两个都为1时才为1;其他都为0。 或(|):有一个为1就为1;其他为0. 异或(^):两个相同为0,不同为1. 左移(>>):左移n位,则高位(左边)去掉n,低位(右边)补0.相当于乘以n个2. 右移(>>):右移n位,无符号位整数:去掉低位(右边)的n位,高位补0. 有符号整数:正数:去掉低位n位,左边补0.负数:左边补1(负数在计算机中

2015-04-23 18:08:14 452

原创 青蛙跳台阶问题

(1)一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。 (2)一只青蛙一次可以跳上1级台阶,也可以跳上2 级……它也可以跳上n 级,此时该青蛙跳上一个n级的台阶总共有多少种跳法?分析:1)当n = 1, 只有1中跳法;当n = 2时,有两种跳法;当n = 3 时,有3种跳法;当n = 4时,有5种跳法;当n = 5时,有8种跳法;…….

2015-04-22 18:03:49 382

原创 排序-快排、二分及旋转数组的最小数字

旋转数组的最小数字: *把一个数组最开始的若干位搬到数组的末尾,我们称子为旋转数组。输入一个递增排序的旋转,输出旋转数组中的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,最小元素是1. 直接遍历也能够找到最小值,但是这样没有用到旋转的特性,其时间复杂度为O(n),不是优解。 可以把旋转数组看成是两个有序的子数组,那么可以用二分查

2015-04-22 16:08:28 466

原创 时间为O(n)的排序方法

package t1;public class Sort { //O(n)的排序方法,对公司的人员年龄进行排序,借助数组长度为100的空间换来了O(n)的时间度 static void sortages(int ages[],int len){ if(ages == null || len <= 0) { return ; }

2015-04-21 22:43:06 470 1

原创 《剑指Offer--栈-队列》

用两个栈来实现队列:*栈的结构是先进后出,队列的结构是先进先出,那么可以用两个栈来实现一个队列的结构,先将一组元素(abcdef)压入到一个栈1中,再出栈压入栈2中(fedcba),就实现了队列的: 代码如下:*package t1;import java.util.LinkedList;import java.util.List;import java.util.Queue;impor

2015-04-21 16:36:49 359

原创 <剑指Offer>--链表从尾到头输出

我们想到的办法是可以把链表倒置后在进行输出,但是这样会破坏链表原来的结构,可以询问面试官是否允许改变链表结构,一般情况下是不允许的,这样,我们就想到链表正常遍历是从头到尾,现在要反过来,那么可以用栈来实现,先遍历进栈,在出栈即可。(用栈的思想,先进后出,其思想就是递归,那么也可以递归来实现) 代码如下import java.util.Stack;class Nodes{ int data

2015-04-20 11:14:21 320

原创 吸血鬼数字(java)

*吸血鬼数字是指位数为偶数的数字,可以由一堆数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排列。以两个0结尾的数字是不允许的 例如,下列数字都是吸血鬼数字 1260=21*60 1827=21*87 2187=27*81 写一个程序,找出所有4位的吸血鬼数字* void test(){int count = 0,num=

2015-04-17 16:19:39 419 1

转载 理解红黑树(2)

继续上篇红黑树的分析,这次是树节点删除的分析 普通二叉树节点删除过程: 普通二叉数节点删除过程分为2种情况(删除target节点):case1这种情况就是target节点只有一个孩子,无论只有左孩子,还是只有右孩子,在这种情况下删除target节点,这种情况比较简单,就是直接删除target节点,然后重新把parent节点和child节点的父子关系设置好即可case2中,需要删除的节点targe

2015-04-14 17:22:33 376

转载 理解红黑树(1)

红黑树是一种二叉查找树,它是在1972年由Rudolf Bayer发明的,它的性能优于平衡2叉树(avl树),因为avl树过分追求平衡,avl树要求任何节点的左右子树高度之差不能大于1,而红黑树做到的是任何节点的左右子 树 高度差不会超过2倍(左子树的高度不会大于右子树高度的2倍,或者右子树的高度不会大于左子树的高度的2倍),由此看出avl树如果要保持平衡需要付出更 多的旋转(左旋,右旋),avl

2015-04-14 17:20:09 707

原创 生产者与消费者

//生产者与消费者public class SyschTest { public static void main(String[] args) { Stack stack = new Stack("stack"); Producer p = new Producer(stack, "p"); Consumer c = new Consum

2015-04-10 23:10:15 334

转载 java文件读写操作大全

转载自:http://blog.sina.com.cn/s/blog_4a9f789a0100ik3p.html一.获得控制台用户输入的信息 public String getInputMessage() throws IOException...{ System.out.println("请输入您的命令∶"); byte buffer[]=new byte[1024];

2015-04-09 15:52:09 325

原创 《剑指Offer》--替换空格

请实现一个函数,把字符串中的空格替换成%20,例如,输入“we are happy.”,输出“we%20are%20happy.”将长度为1的空格替换为长度为3的“%20”,字符差的产度变长。如果允许我们开辟一个新的数组来存放替换空格后的字符串,那么这道题目就非常简 单。设置两个指针分别指向新旧字符串首元素,遍历原字符串,如果碰到空格就在新字符串上填入“%20”,否则就复制元字符串上的内容。 如果

2015-04-07 16:28:37 411

转载 【深入】java 单例模式

关于单例模式的文章,其实网上早就已经泛滥了。但一个小小的单例,里面却是有着许多的变化。网上的文章大多也是提到了其中的一个或几个点,很少有比较全面且脉络清晰的文章,于是,我便萌生了写这篇文章的念头。企图把这个单例说透,说深入。但愿我不会做的太差。  首先来看一个典型的实现:复制代码 1 /** 2 * 基础的单例模式,Lazy模式,非线程安全 3 * 优点:lazy,初次使用时实例化单

2015-04-06 20:56:52 368

转载 程序员面试题精选100题(17)-把字符串转换成整数[算法]

题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串”345”,则输出整数345。 分析:这道题尽管不是很难,学过C/C++语言一般都能实现基本功能,但不同程序员就这道题写出的代码有很大区别,可以说这道题能够很好地反应出程序员的思维和编程习惯,因此已经被包括微软在内的多家公司用作面试题。建议读者在往下看之前自己先编写代码,再比较自己写的代码和下面的参考代码有哪些不同。首先我们

2015-04-06 11:22:11 508

原创 finally问题

finally:异常处理try语句的组成部分,finally中代码总会被执行,如下代码,返回的是1,原因是执行try中的return时,返回,但是这里并没有退出函数,而只是将函数值返回到了函数中间值中(相当于一个桶中),然后在执行finally中语句,虽然执行了x++,但是最终函数返回1。注:如果打开finally中return,那么返回的结果将是2,因为此时的return又将结果返回

2015-04-06 10:40:37 536

转载 最短路径—Dijkstra算法和Floyd算法

Dijkstra算法1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在负权边。问题描述:在无向图 G=(V,

2015-04-04 12:14:16 446

原创 森林转换成二叉树

森林转换成二叉树,不多说,直接看图就明白了

2015-04-03 16:51:57 593

转载 构建二叉树

以一道题目来说明如何建立二叉树。  题目:已知先序遍历,中序遍历 建立二叉树,然后求后序遍历。  e.g.    先序:a b d e i j c f g           中序:d b i e j a f c g           后序:d i j e b f g c a //期望结果 解法:先序中的首元素a 必为该二叉树的根结点,在中序序列里a之

2015-04-03 11:16:39 351

原创 阿里笔试大题

第一题:写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。请注意程序效率。class Node {//节点 int data ; Node left; Node right; Node(int data,Node left,Node right) { data = data;

2015-04-01 20:14:48 415

原创 链表合并

已知连个链表la和lb的元素按值非递减有序排列,归并La和Lb得到新的单线性表且非递减有序排序。void mergeList(LinkList &La,LinkList &Lb,LinkList &Lc) { pa = pa->next; pb = pb->next; lc = pc = la; while(pa!=null && pb != null) {

2015-04-01 15:44:55 330

转载 堆和栈的区别(转过无数次的文章)

一、预备知识—程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分    1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其    操作方式类似于数据结构中的栈。    2、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回    收   。注意它与数据结构中的堆是两

2015-04-01 10:46:37 334

springMVC+mybatis+maven整合demo

springMVC+mybatis+maven整合demo,支持mybatis generate自动生成实体类和mapper接口,亲测可用。

2016-01-11

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

TA关注的人

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