自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 不懂全排列的看过来!

题目:假设字符串中的所有字符都不重复,如何输出字符串的所有组合?例如:abc,思路:运用递归的算法,遍历字符串,每个字符串,每个字符只能取或者不取。若取该字符,就把他放到结果字符串中public class Combine { public static void CombineRecursiveImpl(char[] c,int begin,int len,StringBuff...

2018-10-31 14:45:11 326

原创 重建二叉树

题目输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路树的前序遍历是根左右的规则 树的中序遍历是左右根的规则 当找到前序遍历的第一个元素,与中序遍历中的第i个元素相等时,中序遍历的[0,i)...

2018-09-05 00:46:04 274

原创 排序算法稳定性!你不看会后悔的!

排序算法稳定性是什么?假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。 通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai ...

2018-09-03 14:14:48 421

原创 堆排序

基本思想(1)在构造有序堆时,我们开始只需要扫描一半的元素(n/2-1 ~ 0)即可,因为(n/2-1)~0的节点才有子节点,如图1,n=8,(n/2-1) = 3 即3 2 1 0这个四个节点才有子节点 (2)首先先建大堆 (3)然后调整堆,找出最大值然后拿出来代码:public class Main {private static void heapSort(int[] a...

2018-09-02 13:16:31 260

原创 归并排序

基本思想归并排序是建立在归并操作上的一种有效的排序算法。在做归并排序之前我们先了解如何将两个数组合并合并代码:public static void MemeryArray(int a[], int b[], int c[]) { int i = 0; int j = 0; int k = 0; while(i<a.length &am...

2018-09-01 16:51:43 253

原创 快速排序

基本思想先从数列中取出一个数作为key值;将比这个数小的数全部放在它的左边,大于或等于它的数全部放在它的右边;对左右两个小数列重复第二步,直至各区间只有1个数。举例说明1、初始时 i = 0; j = 9; key=72 由于已经将a[0]中的数保存到key中,可以理解成在数组a[0]上挖了个坑,可以将其它数据填充到这来。从j开始向前找一个比key小的数。当j=8,符合条...

2018-08-31 21:30:40 258

原创 希尔排序

基本思想在要排序的一组数中,根据某一增量分为若干子序列,并对子序列分别进行插入排序。 初期选用大跨步(增量较大)间隔比较,使记录跳跃式接近它的排序位置;然后增量缩小;直至增量为1,此时数据序列基本有序,最后进行插入排序。过程代码public class Main{public static void main(String[] args) { int[] arr = n...

2018-08-31 10:04:18 294

原创 走进JVM

什么是JVM?JVM(Java Virtual Machine的简称,意为Java虚拟机)虚拟机又是啥?指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。常见的虚拟机有:JVM、VMwave、VirtualBoxJVM与VMwave、Virtual Box的区别VMwave与VirtualBox是通过软件模拟物理CPU的指令集,物理系统...

2018-08-24 11:53:07 271

原创 高并发,不在难以理解!!!

什么是高并发?高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发的行相关特性响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。并发用户数:指的是现实系统中操作业务的用户,例如在淘宝双11疯狂抢单,同时在线量一定程...

2018-08-23 07:53:15 384

原创 插入排序

基本思想在要排序的一组数中,假定前n-1个数已经排好序,现在将第n个数插到前面的有序数列中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。 代码public class Main{public static void main(String[] args) { int[] arr = new int[]{42,20,17,13,28,14,23,15};...

2018-08-20 16:24:46 519

原创 选择排序

基本思想在长度为N的无序数组中,第一次遍历n-1个数,找到最小的数值与第一个元素交换;第二次遍历n-2个数,找到最小的数值与第二个元素交换; 。。。第n-1次遍历,找到最小的数值与第n-1个元素交换,排序完成。 过程代码public class Main{ public static void main(String[] args) { in...

2018-08-20 15:17:15 508

原创 冒泡排序(BubbleSort)

基本思想:两个数比较大小,较大的数下沉,较小的数冒起来。过程:比较相邻的两个数据,如果第二个数小,就交换位置。从后向前两两比较,一直到比较最前两个数据。最终最小数被交换到起始的位置,这样第一个最小数的位置就排好了。继续重复上述过程,依次将第2.3…n-1个最小数排好位置。 平均时间复杂度:O(n^2)代码public class Main{ p...

2018-08-20 14:39:49 619

原创 深度认识HashMap

什么是HashMap?HashMap可以看成做数组和链表结合组成的复合结构,数组被分为一个个桶(bucket),通过哈希值决定了键值对在这个数组的寻址;哈希值相同的键值对,则以链表形式存储,如果链表大小超过阈值(TREEIFY_THRESHOLD,默认 8),链表就会被改造成树形结构(红黑树)。转化成红黑树这一过程叫做树形化树形化还是扩容?根据哈希表中元素个数确定是扩容还是树...

2018-08-20 10:09:12 883

原创 JavaSE之集合类

你了解集合框架?集合框架概念集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容:接口:是代表集合的抽象数据类型。例如 Collection、List、Set、Map 等。之所以定义多个接口,是为了以不同的方式操作集合对象实现(类):是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构,例如:ArrayList、LinkedList、HashSet、...

2018-08-20 07:21:19 942

原创 JavaIO总结

File文件操作类File类是唯一一个与文件操作本身(创建、删除、取得信息)有关的程序类。实际项目部署环境可能与开发环境不同。 Windows–“\” Unix–“/” 所以在使用路径分隔符时都会采用File类的一个常量“separator”,例如:File file = new File(File.separator + “Users” + File.separator + “9...

2018-08-19 18:07:51 828

原创 平衡二叉树

平衡二叉树什么叫平衡二叉树??????平衡二叉树(Balanced Binary Tree)又被称为AVL树,它是一棵空树,或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 最小二叉平衡树的节点的公式如下 F(n)=F(n-1)+F(n-2)+1,这个类似于一个递归的数列,可以参考Fibonacci数列,1是根节点,F(n-1)是左子树的节点数量,F(...

2018-08-18 22:52:28 1778

原创 二叉树的深度

题目输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。代码import java.util.Queue;import java.util.LinkedList;public class Solution {public int TreeDepth(TreeNode root) { if(root =...

2018-08-18 20:19:27 672

原创 单例模式

单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单...

2018-08-15 13:35:28 886

原创 this和super的用法总结

thisthis是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针 this的用法在Java中大体可以分为3中: 1. 普通的直接引用:this 相当于是指向当前对象本身。 2. 形参与成员名字重名,用this区分 3. 引用构造函数:调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句)。supersuper 可以理解为是指向自己超(父)类对象的一...

2018-08-14 15:27:03 1672

原创 最小操作数

题目给定一个原串和目标串,能对源串进行如下操作: 1.在给定位置插入一个字符 2.替换任意字符 3.删除任意字符 要求完成一下函数,返回最少的操作数,使得源串进行这些操作后等于目标串。源串和目标串长度都小于2000。 思路:编辑距离算法编辑距离,又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替...

2018-08-14 11:28:32 2644

原创 二叉树

题目: 1 / \ 2 3/ \ / \4 5 6 7/\/\/\/\如上图所示,由正整数 1, 2, 3, …组成了一棵无限大的二叉树。从某一个结点到根结点(编号是1的结点)都有一条唯一的路径,比如从5到根结点的路径是(5, 2, 1),从4到根结点的路径是(4, 2, 1),从根结点1到根结点的路径上只包含一个结点1,因此路径就是(1)。对于两个结点x和y,假设...

2018-08-12 21:23:06 1052

原创 波兰式方程

波兰式方程题目 Evaluate the value of an arithmetic expression in Reverse Polish Notation.Valid operators are+,-,*,/. Each operand may be an integer or another expression.范例 Some examples: [“2”, “1”, ...

2018-08-12 20:05:36 894

原创 字符串排序问题

题目编写一个程序,将输入字符串中的字符按如下规则排序(一个测试用例可能包含多组数据,请注意处理)。 规则 1 :英文字母从 A 到 Z 排列,不区分大小写。 如,输入: Type 输出: epTy 规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。 如,输入: BabA 输出: aABb 规则 3 :非英文字母的其它字符保持原来的位置。 如,输入: By?e 输出: ...

2018-08-11 23:02:22 1269

原创 十六进制的转化有一个parseInt()就足以!!!

题目:写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串(注意可能存在的一个测试用例里的多组数据)。思路:parseInt()就是把String类型转化为int类型。          如 String a= "123";          int b = Integer.parseInt(a);          这样b就等于123了。 import ja...

2018-08-11 21:09:19 2086

原创 add-two-numbers (两数之和)

题目:You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a...

2018-08-11 19:21:37 841

原创 初谈线程

1、进程:操作系统中一个程序的执行周期称为一个进程。2、线程:一个程序同时执行多个任务。通常,每一个任务就称为一个线程。3、多进程与多线程区别:本质区别在于,每个进程拥有自己的一整套变量,而线程则共享数据。共享变量使得线程之间的通信比进程之间通信更有效、更方便。4、线程状态 5、 <1>继承Thread类实现多线程java.la...

2018-05-01 16:33:00 734

原创 泛型

1、泛型的定义:泛型指的就是在类定义的时候并不会设置类中的属性或方法中的参数的具体类型,而是在类使用时再进行定义。2、泛型的基本语法:class MyClass<T>{    T value1;}3、尖括号 <> 中的 T 被称作是类型参数,用于指代任何类型。实际上这个T你可以任意写,但出于规范的目的,Java 还是建议我们用单个大写字母来代表类型参数。常见的如: T 代表...

2018-04-23 20:54:40 746

原创 接口

1. 说出下面程序的执行结果: interface InterfaceA { String S = "good "; void f(); } abstract class ClassA { abstract void g(); } class ClassB extends ClassA implements InterfaceA { void g() { System.out.print(S); ...

2018-04-05 16:28:37 908

原创 指针数组、数组指针、函数指针、函数指针数组、指向函数指针数组的指针

1、指针数组:   在C语言和C++语言中,数组元素全为指针的数组称为指针数组。一维指针数组的定义形式为:“类型名 *数组标识符[数组长度]”。即有诸形如“ptr_array[i]”的指针。指针数组中的元素亦可以表示为“*(*(ptr_array+i))”。又因为“()”的优先级较“*”高,且“*”是右结合的,因此可以写作**(ptr_array+i)。由于数组元素均为指针,因此ptr_array...

2018-03-28 23:05:02 772

原创 java 语言(递归) 60!

方法一:public class Test{   public static double cal(int i){        if (i == 1)            return 1;        else            return cal(i-1) * i;    }     public static void main(String[] args){        Sy...

2018-03-25 13:56:40 869

原创 Linux中的相关知识

《1》Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp /bin: /usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。/sys: 文件系统访问 Linux内核/SELinux SELinux是一种基于域-类型模型(domain-type)的强制访问控制(MAC)安全系...

2018-03-23 14:18:55 753

原创 谈谈自己

我是一名普通的大学生,这一行业我第一次接触是在大一的时候,这代码让我很惊讶,原来电脑上的东西都是用代码所实现的,学久了之后我发现这个真好难,但是我不气馁为了以后的工作,我会更加努力,为了成为一个很好的开发软件程序猿,我会很努力的,在今后的学习中我很加倍的努力,不断地学习新知识,从网上从书上不断地学习,从老师身上学习,我会每周会花费四天的时间用来学习这一方面的知识,这一切的努力是为了以后更好的发展,

2017-12-06 12:39:06 218 1

空空如也

空空如也

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

TA关注的人

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