![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM/BS/MS
文章平均质量分 83
单向街的夏天
每天进步一点点
展开
-
算法题---二叉树篇
1 问题:打印二叉树所有的路径 给一个二叉树,把所有的路径都打印出来。比如,对于下面这个二叉树,它所有的路径为:8 -> 3 -> 18 -> 2 -> 6 -> 48 -> 3 -> 6 -> 78 -> 10 -> 14 -> 13思路:从根节点开始,把自己的值放在一个数组里,然后把这个数组传给它的子节点,子节点同样把自己原创 2013-05-24 20:39:58 · 1000 阅读 · 0 评论 -
Java是传值的
一示例理解 java程序只有传值,没有传引用,传地址的说法。但是传递的值可以是具体的数值,也可以是一个对象的引用。可以用这样一句话来描述“java函数是传值的,java函数传递的参数是对象的引用”。 我看到过几个解释这个问题的例子,不过个人感觉看过例子之后还是只知道是什么不知道为什么,停留在照猫画虎的水平上还是挺容易出问题的。所以举例子之前,先从jvm的实现原理上有个了解应当原创 2013-07-24 19:47:25 · 905 阅读 · 0 评论 -
Java:编译时与运行时
在开发和设计的时候,我们需要考虑编译时,运行时以及构建时这三个概念。理解这几个概念可以更好地帮助你去了解一些基本的原理。下面是初学者晋级中级水平需要知道的一些问题。Q.下面的代码片段中,行A和行B所标识的代码有什么区别呢?12345678910111213原创 2013-07-24 16:35:52 · 1072 阅读 · 0 评论 -
Linux内存管理基本概念(2)
Linux 内存基础地址类型linux内核中有许多种不同的地址类型用户虚拟地址 用户空间看到的常规地址,通过页表可以将虚拟地址和物理地址映射起来物理地址 用在cpu和内存之间的地址叫做物理地址总线地址 外围总线和内存之间的地址叫做总线地址。通常他们和物理地址相同内核逻辑地址 内核的常规地址空间,必定有对应的物理内存与之映射。kmalloc返回的就是内核逻辑地址内核虚拟地址原创 2013-06-14 22:18:19 · 1101 阅读 · 0 评论 -
关键字this、super、final、static、synchronized及 中断线程的方法
java中的this随处可见,用法也多,现在整理有四点:1 this是指当前对象自己。 当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用。如下面这个例子中: public class Hello { String s = "Hello"; public Hello(String s){ Syste原创 2013-05-05 20:01:21 · 1357 阅读 · 1 评论 -
算法题---字符串篇2
(一) 求数组(或环状数组)的最大连续(或不连续)子序列和。本题共有4小题。遇到这类题,首先想到的应该是动态规划思想。(下面的代码中,都假定所进行的有符号数算术运算不会发生溢出。可以通过改用64位整数表些某些数,来保证这点。)① 数组的最大连续子序列和(连续子序列和的最大值)假设f(n)为数组的前n个元素中,以第n个元素结尾的最大连续子序列和,则对第n+1个元素(值为v)原创 2013-06-16 15:00:01 · 900 阅读 · 0 评论 -
面试题---指针篇
1 数组名和指针的区别 许多程序员对数组名和指针的区别不甚明了,他们认为数组名就是指针,而实际上数组名和指针有很大区别,在使用时要进行正确区分,其区分规则如下: 规则1 数组名指代一种数据结构,这种数据结构就是数组; char str[10]; char *pSt原创 2013-06-14 16:52:22 · 862 阅读 · 0 评论 -
算法题---字符串篇
1问题: 把字符串压缩,比如aaabbbbc, 压缩后成为:a3b4c1。分析:这题很简单,我们只需要从头到尾遍历一遍字符串即可。首先设置一个计数器count, 每次“指针移位”的时候,判断当前字符是否与前一个字符相等,如果相等,count++, 指针继续下移,否则,我们需要对前面已经遍历的字符串进行处理,然后重新初始化count,直到字符串遍历结束。这题的关键是对原创 2013-05-24 20:37:24 · 1566 阅读 · 0 评论 -
继承过程中重载VS重写---(重写规则)
一 子类---父类 中成员变量的继承及this--super 访问变量看声明,访问方法看实际对象类型(new出来的类型)子类从父类继承分成两种:1.方法的继承: 方法的继承,父类直接把自己的方法转移到子类中去,当然前提是父类的方法修饰符的访问范围是子类可以访问的范围,但是如果子类已经重写了父类的方法,这时候这原创 2013-07-24 10:32:27 · 1196 阅读 · 0 评论 -
Java 基础知识巩固(一)
一 java基本类型的转换的注意 1.1 复合操作自动实现窄化转换 对两个容量不一样的数据类型的变量进行算术运算时,java会自动将小容量的变量进行精度提升,然后再进行运算,得到的结果类型是提升后的大容量的数据类型.如果将该结果赋值给小容量的数据类型的变量,则必须进行强制的类型转换,否则编译程序会报损失精度错.例如:char c='a';int原创 2012-09-14 22:55:16 · 1287 阅读 · 0 评论 -
MS---数据库概念回顾
1 数据库事物隔离级别这个想必每个程序员都很早就知道了,但是我其实并没有真正搞清楚。网络上的很多文章也没说清楚。以下内容个人觉得还是比较好理解的: 事务隔离级别(transaction isolation levels ):隔离级别就是对对事务并发控制的等级。ANSI / ISO SQL 将其分为串行化(SERIALIZABLE)、可重复读(REPEATABLE RE原创 2013-06-14 17:16:36 · 1463 阅读 · 0 评论 -
java中的null的剖析
(一) java中的null的学问剖析一、null是代表不确定的对象 Java中,null是一个关键字,用来标识一个不确定的对象。因此可以将null赋给引用类型变量,但不可以将null赋给基本类型变量。 但null值可以强制转换为任何java类类型。比如:int a = null;是错误的。Ojbect o = null是正确的。 Java中,变量的适用都遵循一原创 2013-06-15 00:47:26 · 3211 阅读 · 0 评论 -
字典树-----Trie树
Trie有一个很有趣的用途,那就是自动提示。 Trie,又称字典树,单词查找树或键树,是一种树形结构。它来源于retrieval(检索)中取中间四个字符构成(读音同try)。用于存储大量的字符串以便支持快速模式匹配,检索领域主要应用在信息。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字原创 2013-05-23 22:34:54 · 833 阅读 · 0 评论 -
算法题--综合篇
1 问题:比如:给定两个值 5和10,不通过比较,直接找出最大值。分析:一旦涉及到不用比较找最大值,想都不用想,一般只能通过位运算来实现。 max = a - ((a-b)&((a-b)>>31))或者max = ((a+b)+|a-b|)/2如果找最小值,我们只需把两个值相加,减去max即可。2 问题:原创 2013-05-23 21:54:28 · 1237 阅读 · 0 评论 -
算法题---Tree系列(二叉树 )
1 题目: 二元树的深度 输入一棵二元树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。例如:输入二元树: 10 / \原创 2013-05-30 22:12:08 · 1105 阅读 · 0 评论 -
算法题---链表篇
一 判断俩个链表是否相交,并返回第一个公共结点链表的结点定义为:struct ListNode{ int m_nKey; ListNode* m_pNext;};分析:这是一道微软的面试题。微软非常喜欢与链表相关的题目,因此在微软的面试题中,链表出现的概率相当高。如果两个单向链表有公共的结点,也就是原创 2013-06-17 23:02:00 · 1003 阅读 · 0 评论 -
Java虚拟机的深入研究(堆区--vs--java方法栈)
1 java堆与栈的区别 栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和 multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内原创 2013-06-15 20:21:30 · 1547 阅读 · 0 评论 -
算法题----经典数学问题
一 题目:寻找丑数 我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第1500个丑数。分析:这是一道在网络上广为流传的面试题,据说google曾经采用过这道题。所谓一个数m是另一个数n的因子,是指n能被m整除,也就是n % m == 0。根据丑数原创 2013-05-30 20:03:35 · 1025 阅读 · 0 评论 -
字符串匹配的KMP算法(部分匹配表:前缀---后缀)
字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。这种算法不太容易理解,网上转载 2013-05-25 19:59:18 · 5948 阅读 · 1 评论 -
KMP算法---理解
一. 简单匹配算法 简单匹配算法,又称为朴素的模式匹配算法。简单匹配算法回溯的是i,不是j。先来看一个简单匹配算法的例子:public class KMP_test {/** 若串 S 中从第pos(S 的下标0≤pos* 这样的子串在串 S 中的下标,否则返回 -1*/public static int find(String src原创 2013-06-25 21:51:07 · 886 阅读 · 0 评论 -
随机不重复排序算法及Java产生随机数的3种方式
问题描述 给定任意个不重复的数字,对其进行随机排序算法分析 首先想到可以将给定的数字放在一个集合A中,初步定为一个ArrayList,这样,可以用A集合的长度来做为随机数的基数,取出一个数x,放到结果集合B中,然后将数x从A集合删除;接着用A集合剩下的长度作为基础重复上一步操作,最终可以得到结果集合B。考虑到用Arraylist删除比较慢,可以用Link原创 2013-07-12 23:04:02 · 5008 阅读 · 0 评论 -
Java 基础知识巩固(二)--持续更新
一 构造函数的相关注意 1 构造函数的修饰符 默认构造器的修饰符只跟当前类的修饰符有关。 比如B如果是public的,则默认构造方法是public的。 如果B是默认的访问权限,则构造方法相同。 当B是内部类是,前面也可以有protected,private等,默认原创 2013-08-03 22:02:42 · 1745 阅读 · 0 评论