自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 滑动窗口和查找表的使用

1.滑动窗口1.1LeetCode209给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。示例: 输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。暴利解法,我们会分别找出所有连续子数组的和,...

2018-08-20 17:09:25 421

原创 三路快排与对撞指针

1.三路快排对比快速排序的优势相对于快速排序,三路快排的优势是在于能够减少重复元素操作次数2.三路快排主要的思路定义lt,gt两个初始变量,[lt,gt]表示该区间的元素等于v通过遍历每个元素得到lt,gt的最终变量值3.代码设计 private static void quick(Comparable[] nums, int l, int r){ ...

2018-07-26 23:08:33 424

原创 java八大排序----快速排序

1.快速排序的流程找到数组的第一个元素,然后和所在区间相比较,把这个元素放在一个恰当的索引位置,使数组左边的元素比它小,右边的元素比它大,然后把剩余的两个区间依次这样递归下去2.快速排序的复杂度每一次的操作都是树形的结构,因此每一层都是O(N),则整个复杂度为O(NlongN),如果数组本身就是顺序表,复杂度讲达到O(N^2)级别3.代码设计sort()定义一个j,...

2018-07-18 21:33:14 583 1

原创 java八大排序----归并排序

1.归并排序的流程先通过二分法把十个元素的数组依次对半分,最后整个流程结构变成了一个线段树的结构。当到达不可分的区间后停止然后与同一层区间开始排序,是一个从底向上的排序过程2.归并排序的时间复杂度由于二叉树每一层的排序复杂度都是O(N)级别,所以整个排序的复杂度是O(NlogN) O(logN)表示整个二叉树的高度3.代码设计import java.util.Arrays...

2018-07-17 11:56:11 244

原创 java八大排序----堆排序

1.堆结构堆结构2.堆排序O(nlogn)/** * Created by upupgogogo on 2018/7/14.下午2:11 */public class HeapSort { private int tree[]; private int size; public void heapSort(int[] nums){ tree =...

2018-07-15 23:46:23 194

原创 数据结构--二分搜索树(BST)

1.二分搜索树的简单介绍一般来讲,二叉树的存储数据的基本结构是封装一个Node节点,保存左右两个孩子的node变量,以及一个泛型数据,二分搜索树需要泛型类型实现Comparable接口(必须保证左子树的数据比右子树大)/** * Created by upupgogogo on 2018/5/30.上午11:38 */public class BST<E extends Compar...

2018-05-30 15:22:59 279

原创 初级企业电商网站的设计

portal :www.upupgogogo.cnadmin : admin.upupgogogo.cn(xiaowang 147258 可以查看别改)资料以及源码:learning.upupgogogo.cn小游戏:2048.upupgogogo.cn1.准备的工具和环境1.1Windows工具:jdk,tomcat,meavn,git,mysql,测试软件postman(其他的也行),支付宝加...

2018-05-09 15:29:05 843 1

原创 邻接矩阵来实现带权图结构,并通过Dijkstra算法寻找最短路径

1.邻接矩阵来实现带权图结构package com.upupgogogo;/** * Created by upupgogogo on 2018/3/26.上午11:45 */public class AdjMatrixGraph<T> { protected SeqList<T> vertexlist; //顺序表储存图的定点集合 pro...

2018-03-27 15:06:16 1701

原创 编写简易版的单链表和基于单链表数组编写hashset表

1.简易版LinkedList的实现package com.upupgogogo;/** * Created by upupgogogo on 2018/3/20.下午1:19 */public class Node<T> { public T data; public Node<T> next; public Node(T date...

2018-03-21 15:15:10 294

原创 队列的底层设计以及时间复杂度的优化

1.基于数组的实现队列的基本概念就是先进先出,但是如果采用数组来实现就会出现每次执行一次dequeue会把数组里面的每个元素都会移动一次,移动n次的时间复杂度就是O(n^2),我们想要优化它的dequeue操作,可以定义两个变量来记录它的栈顶和栈尾来进行入队和出队操作/** * Created by upupgogogo on 2018/4/26.下午6:02 */public class ...

2018-05-10 19:39:33 1084 1

原创 递归的线性递归与分叉递归

1.递归的线性递归,这里有一个最经典的例子就是算出n!这里线性的进栈出栈,直到得到最后的factorial(1)2.递归的分叉递归2.1分叉递归1这里我们遍历每个目录的子目录,直到当前子目录是最小子目录,然后加以返回每个目录对象。每个目录的递归互不影响2.2分叉递归2这里是一个迷宫的递归,他会从起点开始向四个方向递归查找,便会停止当前坐标的当前方向的递归,而其他坐标还是会继续查找2.3分叉递归3与...

2018-03-12 12:46:23 1338

原创 用SSH来开发用户模块

1.开发准备1.1导入所需框架对应jar包 友情连接https://github.com/OMGye/SSH/tree/master/WebContent/WEB-INF/lib1.2新建框架所需配置文件(和三大框架沟通的桥梁)第一步:由于采用的是struts2而不是servlet,我们需要把action的类名,方法名,返回值写在struts配置文件中第二步:sprin

2017-10-19 10:57:19 387

原创 浅谈git与github

1.git1.1 git的简单说明git,用官方一点的说法就是版本控制系统,简单来说,可以把它比喻成一个管理项目的仓库。1.2 git的使用我们可以通过在官网里面下载并进行安装,安装成功后会有两种形态,一种是图形界面的,另外一种就是命令管理的,其中的命令都是

2017-10-08 23:15:40 256

原创 浅谈javaweb

1.tomcat服务器(servlet容器)Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。它既可以为HTML页面服务,另外它还是一个Servlet和JSP容器1.1tomcat加载web项目流程启动tomcat时,他会先加载自身程序(他本

2017-10-06 09:40:59 390 1

原创 学习aop的底层设计

1.代理模式每个模式的出现必然是有它出现的原因,一个简单的比喻,我们要买电脑,不可能直接出厂电脑的地方去买,而是找一家代理商去买,为什么要找他呢?因为方便和代价比较低在我们写玩完一个项目时,我们发现需要在很多方法中添加日志或者其它功能时,我们怎么去做呢?首先我们要想的不是去每个方法里面修改源代码,那样风险系数太高,也太麻烦,这时候我们又想出别的方法,代理1.1静态代理在项目中,有个

2017-09-27 11:50:54 288 1

原创 手写自己的BufferedReader

1.IOIO有两大体系,一个是字节输入输出流,一个是字符输入输出流,我所要写的是关于字符输入流1.1FileReader字符输入流,以字符为单位的通过系统的IO操作来读取硬盘上面的文件,每次的读取操作都需要去调用系统的IO操作1.2BufferedReader缓冲字符输入流,以字符为单位的通过系统的IO操作来读取硬盘上面的文件,但是不同的是他每次的读取操作不是都要去调用系统的I

2017-09-21 19:07:16 333 1

原创 HashSet的储存方式以及内存泄露的原因

1.HashSet在单链表集合框架中,有两大体系,一个是Set,一个是List,简单来说一个是线性的一个是非线性的1.1 LinkedList,ArrayList,HashSetArrayList:集合的升级版(顺序表)从上面可以看到我们初始化一个ArrayList对象就会包装一个长度为10的Object的数组LinkedList :链式表这上面我们可以看出来这

2017-09-19 19:33:46 5349 1

原创 反射

1.反射反射在我们日常的开发中经常使用,尤其在开发框架中更是有着不可替代的作用,我们在框架基础上运行我们的程序,必须通过配置文件把我们的程序加载到正在运行的框架中。1.1

2017-09-17 22:41:15 219 1

原创 枚举

1.枚举1.1枚举的由来在java最初阶段,由于java想要摒弃很多别的糅杂的东西,打造成一款最轻量级的编程语言,没有枚举这个东西,但是随着java使用范围越来越广,java又打造这一款模式!1.2为什么要用枚举在我们日常生活中,我们有交通灯三种颜色,我们用什么表示比较好呢,这个时候,就有人提出封装交通灯这个类,然后通过这个类定义三个常量对象。随着对功能要求的增加,我们对于交通灯的

2017-09-17 22:30:19 251 1

原创 死锁机制以及生产者与消费者模式

    java之所以能够一直矗立在各种编程语言之前,与它的多线程技术是密不可分的!  1.我们在使用多线程技术时,除了要保证他的效率,更要确保安全性,java的多线程技术为了确保其安全引入了锁(synchronized)的概念,给程序的安全带来了极大的保证 2.synchronized(锁)我简单的分为代码块锁和方法锁   这两个锁执行的内容是一样的,但是他们的锁对象不一样,代码...

2017-09-12 10:04:28 1530 1

原创 装饰设计模式,原来是这样

通过对设计模式一段时间的了解,对装饰者设计模式有如下粗浅的了解1.首先必须要了解的是,我们是对一个事务(对象)来进行设计,那必须先对其抽取,定义Base接口,我这里是对人来进行设计

2017-09-11 19:47:50 356 6

空空如也

空空如也

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

TA关注的人

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