自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

许长安

除了奋斗,别无选择!!!!

  • 博客(56)
  • 收藏
  • 关注

原创 大数相乘

思路:两个数相乘最多有length1+length2 位  第i位*第j位所得的数的个位数一定落在第i+j位  如果这个数超过了10 就往第i+j+1上进位package testPackage;public class Big { public static int[] stringtoArray(String str){ int length=str.length(); int[

2017-08-02 17:38:46 218

原创 二叉搜索树的后序遍历序列

时间限制:1秒 空间限制:32768K 热度指数:109215 算法知识视频讲解题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路:数组的末尾肯定是 树的根  从头开始遍历数组  找到第一个比根节点大的值  也就是划分了左子树和右子树的界限,然后遍历右子树,如果右子树中出现了

2017-08-02 11:44:29 231

转载 concurrenthashmap 原理

一.Java并发基础当一个对象或变量可以被多个线程共享的时候,就有可能使得程序的逻辑出现问题。 在一个对象中有一个变量i=0,有两个线程A,B都想对i加1,这个时候便有问题显现出来,关键就是对i加1的这个过程不是原子操作。要想对i进行递增,第一步就是获取i的值,当A获取i的值为0,在A将新的值写入A之前,B也获取了A的值0,然后A写入,i变成1,然后B也写入i,i这个时候依然是1. 当然j

2017-08-01 18:36:47 201

转载 Java之CyclicBarrier使用

1、类说明:一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。2、使用场景:需要所有的子任务都完成时,才执行主任务,这个时候就

2017-08-01 12:06:57 207

原创 计算机网络基础知识

一、什么是TCP/IP网络和协议1.     TCP/IP是一类协议系统,它是一套支持网络通信的协议集合。网络是计算机或类似计算机的设备之间通过常用的传输介质进行通信的集合。2.    网络协议就是一套通用规则,用来帮助定义复杂数据传输的过程。数据传输从一台计算机上的应用程序开始,通过计算机网络硬件,经过传输介质到正确目的地,然后上传到目的地计算机网络硬件,最后

2017-07-25 14:52:42 508

原创 剑指offer Java JVM基础

1、java内存与内存溢出1.1 JVM分为哪些区,每一个区干嘛的?(见java虚拟机38页)(1)程序计数器(线程私有) 当前线程执行字节码的信号指示器。(每个线程都会在程序计数器中存储其指令,从而实现线程切换后恢复到正确的执行位置)(2)虚拟机栈(就是常说的栈,线程私有) 每个方法执行(开始到结束就是这个方法的生命周期)都会创建一个栈帧,栈帧存储局部变量表、操作

2017-07-25 09:47:57 216

转载 深入理解Java虚拟机体系结构

1 概述  众所周知,Java支持平台无关性、安全性和网络移动性。而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统一的编程接口,而不管下层操作系统是什么。正是得益于Java虚拟机,它号称的“一次编译,到处运行”才能有所保障。1.1 Java程序执行流程  Java程序的执行依赖于编译环境和运行环境。源码代码转变成可执行的机器代码,由下面的流程完成:

2017-07-24 19:48:24 286

原创 字典树的妙用(求单词出现的次数)

我是从http://blog.csdn.net/niushuai666/article/details/6695503这儿借鉴的,飘过的小牛我很崇拜他字典树,顾名思义,就是一种对字母等字符串进行处理的一种特殊数据结构。说白了,就是二十六叉树。定义一个头指针,每次从头指针开始操作。有两种常用的操作:1.查询某个字符串的出现次数。每个节点的count置为0,直到这个字符

2015-11-13 20:35:11 1848

原创 浅谈排序

1、堆排序堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(或最小)关键字的记录变得简单。(1)用大根堆排序的基本思想① 先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区② 再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交换,由此得到新的无序区R[1..n-1]和有序区R[n],且

2015-11-13 17:38:42 371

原创 第五届蓝桥杯 蚂蚁感冒

蚂蚁感冒时间限制:1000 ms  |  内存限制:65535 KB难度:2描述长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。 这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。 请你计算,当所有蚂蚁都爬离杆子时,有

2014-05-17 16:32:56 864

原创 POJ 3320 Jessica's Reading Problem

Jessica's Reading ProblemTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 6711 Accepted: 2077DescriptionJessica's a very lovely girl wooed by lots of boy

2014-05-17 09:48:31 1051

原创 POJ 3061 Subsequence

SubsequenceTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 8128 Accepted: 3141DescriptionA sequence of N positive integers (10 < N < 100 000), each of t

2014-05-16 21:27:57 759

原创 NYOJ 869 切蛋糕

切蛋糕时间限制:1000 ms  |  内存限制:65535 KB难度:3描述    有如下图半径为R的圆形蛋糕,被切一刀后(图中红色直线),分成两个部分(黄色和绿色),已知其比例为r,求刀痕长度(图中红色直线)。输入输入包括多组测试数据,包括一个整数R(1输出对于每组测试用例,输出一个浮点数,代表刀痕的长度,保留二位小数。样例输

2014-05-16 20:30:39 1349 2

原创 NYOJ 914 Yougth的最大化

Yougth的最大化时间限制:1000 ms  |  内存限制:65535 KB难度:4描述Yougth现在有n个物品的重量和价值分别是Wi和Vi,你能帮他从中选出k个物品使得单位重量的价值最大吗?输入有多组测试数据每组测试数据第一行有两个数n和k,接下来一行有n个数Wi和Vi。(1输出输出使得单位价值的最大值。(保留两位小数)样

2014-05-16 20:14:17 880 1

原创 HDOJ 1003 Max Sum

Max SumTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 136547    Accepted Submission(s): 31609Problem DescriptionGiven a sequenc

2014-05-15 20:35:50 472

原创 NYOJ 757期末考试

期末考试时间限制:1000 ms  |  内存限制:65535 KB难度:2描述马上就要考试了,小T有许多作业要做,而且每个老师都给出来了作业要交的期限,如果在规定的期限内没交作业就会扣期末成绩的分数,假设完成每门功课需要一天的时间,你能帮助小T扣除的分数最小吗?输入输入n,表示n门功课(n(以文件结尾)输出输出扣除的最小分数。样例输

2014-05-15 19:43:19 602

原创 NYOJ 586 疯牛

疯牛时间限制:1000 ms  |  内存限制:65535 KB难度:4描述农夫 John 建造了一座很长的畜栏,它包括N (2 但是,John的C (2 输入有多组测试数据,以EOF结束。第一行:空格分隔的两个整数N和C第二行——第N+1行:分别指出了xi的位置输出每组测试数据输出一个整数,满足题意的最大的最小值,注意换行。样例输入

2014-05-12 21:53:44 487

原创 NYOJ 499 迷宫

迷宫时间限制:1000 ms  |  内存限制:65535 KB难度:4描述一个由 n * m 个格子组成的迷宫,起点是(1, 1), 终点是(n, m),每次可以向上下左右四个方向任意走一步,并且有些格子是不能走动,求从起点到终点经过每个格子至多一次的走法数。输入第一行一个整数 T 表示有 T 组测试数据。(T 对于每组测试数据:第一行两个整数

2014-05-11 21:13:18 453

转载 STL

C++ Primer 学习笔记_27_STL实践与分析(1) --顺序容器的定义、迭代器分类: C++C++STLvectorlistdeque目录(?)[+]STL实践与分析--顺序容器的定义、迭代器一、顺序容器的定义顺序容器容器适配器

2014-05-10 22:03:21 419

原创 数论之因子个数的求法

数论之因子个数的求法1. N的因子个数条件:给定任意一个一个正整数N要求:求其因子的个数首先给出结论:对于任意的整型N,分解质因数得到N= P1^x1 * P2^x2* …… * Pn^xn;则N的因子个数M为 M=(x1+1) * (x2+1) * …… *(xn+1);证明过程:首先 举个例子吧24 = 2^3 * 3^1;其质因子有:为2和3  指数为 3

2014-05-10 21:48:50 975

原创 蚂蚁的难题(三)

蚂蚁的难题(三)时间限制:2000 ms  |  内存限制:65535 KB难度:4描述蚂蚁终于把尽可能多的食材都搬回家了,现在开始了大厨计划。已知一共有 n 件食材,每件食材有一个美味度 Ai 和新鲜度 Bi , 如果蚂蚁在第t时刻将第i样食材烹饪成功,则得到Ai-t*Bi 的美味指数,当然,用第i件食材做饭要花去 Ci 的时间。众所周知,蚂蚁

2014-05-10 20:42:16 603

原创 NYOJ 847 S+T

S + T时间限制:1000 ms  |  内存限制:65535 KB难度:2描述   给你一个长度为n的整数序列A1,A2,……,An,找出两个整数Ai和Aj(i输入输入第一行为数据组数T(T输出对于每组数据,输出Ai –Aj的最大值、i值和j值。(如果有多个最大值,则输出先出现的最大值和i,j值)样例输入235 2 162 3 6 2 1 -1样例输出4 1

2014-05-10 20:35:43 526

原创 计算某一日期是星期几的公式(蔡勒公式)

随便给一个日期,就能用这个公式推算出是星期几。蔡勒(Zeller)公式如下:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1公式中的符号含义如下,w:星期;c:世纪;y:年(两位数);m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算)

2014-05-06 18:44:44 1773 1

原创 sort与stable_sort

这两个函数的原理都是快速排序,时间复杂度在所有排序中最低,为O(nlog2n) ;sort的应用;1、可以传入两个参数;     sort(a,a+N) ,其中a是数组,a+N表示对a[0]至a[N-1]的N个数进行排序(默认从小到大排序);2、传入三个参数;     sort(a,a+N,cmp),第三个参数是一个函数 ;     如果让函数从大到

2014-05-05 17:13:37 872

原创 868 路线计算

路线计算时间限制:1000 ms  |  内存限制:65535 KB难度:1描述有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。其中,蜂房的结构如下所示。输入输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0输出对于每个测试实例,请

2014-05-03 16:41:22 684

原创 NYOJ 625 笨蛋的难题(二)

笨蛋的难题(二)时间限制:1000 ms  |  内存限制:65535 KB难度:2描述笨蛋就业了,并且是在上千应聘中脱颖而出的,和他一起脱颖而出的还有傻子。公司的老板对二人视为珍宝,为了激励他们的工作热情,给他们一小时发一次工资(很高兴吧)。但每次只发给一个人,并且每次发的工资可能不同(老板很厉害吧)。傻子和笨蛋为了证明自己比对方智商高,他们事先知道每次发的工资的

2014-05-03 16:09:56 561

原创 NYOJ,740“炫舞家” ST

“炫舞家“ST时间限制:3000 ms  |  内存限制:65535 KB难度:3描述ST是一个酷爱炫舞的玩家。TA很喜欢玩QQ炫舞,因此TA也爱屋及乌的喜欢玩跳舞机(Dance Dance Revolution,DDR)。但是TA每天还要努力的学习,因此TA希望每次都保存最多的体力来学习。DDR的主要内容是用脚来踩踏板。踏板有4个方向的箭头,用1,2,3,

2014-05-03 15:29:39 814

原创 蚂蚁的难题(二)

蚂蚁的难题(二)时间限制:1000 ms  |  内存限制:65535 KB难度:3描述下雨了,下雨了,蚂蚁搬家了。已知有n种食材需要搬走,这些食材从1到n依次排成了一个圈。小蚂蚁对每种食材都有一个喜爱程度值Vi,当然,如果Vi小于0的时候,表示蚂蚁讨厌这种食材。因为马上就要下雨了,所以蚂蚁只能搬一次,但是能够搬走连续一段的食材。时间紧急,你快帮帮小

2014-04-30 18:12:32 675

原创 最高位数字

最高位数字时间限制:1000 ms  |  内存限制:65535 KB难度:2描述求N^N的个位数字大家应该都会了,可是,N^N的最高位数字你会求吗?输入多组测试数据。每组数据输入一个正整数N(N≤1,000,000,000)。输出对于每组数据,输出N^N的最高位数字。样例输入34样例输出22来源hdu上传者T

2014-04-30 17:37:18 1712 1

原创 设计模式-工厂方法模式

上一篇文章简要概述了简单工厂设计模式,随着需求的不断扩展,若每个课程的创建逻辑不同,则会导致工厂会非常的臃肿,有点像万能工厂,并不便于维护,根据单一职责原则,我们将职能拆分,专人干专事儿,将万能的工厂拆分为创建Java的工厂,Python的工厂,对工厂本身也做一个抽象,于是工厂设计模式应运而生,下面来看代码,先定义个ICourceFactory接口:public interface ICou...

2020-02-25 21:11:01 184

原创 设计模式-简单工厂模式

简单工厂模式不属于23种设计模式,是指一个工厂决定创建哪一种产品类的实例,简单工厂适用于需要创建的对象较少的情形,客户端只需要传工厂类的参数,不需要关系工厂创建对象的逻辑。下面我们以课程为例。有一个ICource接口public interface ICource { /** * 录制视频 */ void record();}接下来有JavaC...

2020-02-24 22:24:24 157

原创 我对七大设计原则的理解

1)单一职责原则:一个方法、模块、类只干一件事,也可以说对于一个类而言只有一个引起它变化的原因。 优点:避免模块函数或者方法发生变化时,影响其他类,降低了耦合度。2)开闭原则:对于一个实体(类、函数、模块)而言,对内修改关闭,对外扩张开放。 原因:新功能经常有,可以添加代码,但是不能对已有的功能做修改。 实现方法: 面向接口编程,提供一个固定的接口,若...

2020-02-23 22:16:15 870

原创 生活感言

时光荏苒,岁月匆匆,时光不会因为我们没有学到太多的东西而放慢了它前进的脚步;寒冬已至,工作不会因为你的懒惰而选择施舍它的怜悯;机会总是留给有准备的人;2020新的开始,注定会是一个不平凡的一年,新的一年计划如下:1.坚持学习,将学到的东西通过写博客的形式记录;2.不断总结,可以提高自己的文采表达能力;3.敢讲,敢说,敢于表达自己的想法。...

2020-02-20 22:06:06 145

转载 SourceTree的使用教程

SourceTree的基本使用1. SourceTree是什么拥有可视化界面的项目版本控制软件,适用于git项目管理window、mac可用2. 获取项目代码1. 点击克隆/新建 2. 在弹出框中输入项目地址,http或者ssh地址都可以   如果箭头指向的仓库类型表明“这不是一个标准的Git仓库”,可能是有以下原因    1) 项目地址获取错误    2) 没有项目访问权限3. 点击“克隆”,等...

2018-05-04 09:53:46 315

转载 剑指offer 计算机网络基础

剑指Offer——知识点储备-网络基础计算机网络http和https的区别(1)http是http协议运行在tcp之上,所传输的内容都是明文,客户端和服务器端都无法验证对方的身份。(2)https是http协议运行在SSL/TLS之上,SSL/TLS运行在tcp之上。所有传输的内容都经过加密。加密采用对称加密,但对称加密的秘钥用服务器方的证书进行非对称加密,此外客户端可以验

2017-07-25 09:55:05 460

原创 数值的整数次方

时间限制:1秒 空间限制:32768K 热度指数:117256 算法知识视频讲解题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。思路:要考虑到指数为负数的情形!如果指数是负数,就先求其绝对值,求出n次方后再求倒数public class Solution { double sum = 0.0;

2017-07-24 21:29:04 182

原创 二进制1的个数

时间限制:1秒 空间限制:32768K 热度指数:111294 算法知识视频讲解题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。在分析算法之前,我们先来分析把一个数减去1的情况。如果一个整数不等于0,那么该整数的二进制数表示中至少有一位是1.先假设这个最右边的一位是1,那么减去1时,最后一位变成0而其他所有位操作都保持不变。也就是最后一位相当于做了取

2017-07-24 20:44:09 191

转载 Java虚拟机工作原理详解

一、类加载器首先来看一下Java程序的执行过程。                         从这个框图很容易大体上了解java程序工作原理。首先,你写好java代码,保存到硬盘当中。然后你在命令行中输入[java] view plain copyjavac YourClassName.java  

2017-07-24 19:00:40 199

原创 Java中的栈和堆

栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。     Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和 multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,

2015-11-20 21:18:47 358

原创 Java中的向上转型和向下转型

我感觉向上转型就是把小的东西放在大的东西里面,不会衣橱,当然是安全的,例如:Father  f = new Son();父亲的体积小,儿子的体积大,现在把父亲放在一个容量更大的东西中,当然能放下;向下转型就就是:大的东西放在小的东西里面,需要强转,例如:Father f = new Son();  Son  s = (Son) f;一句话说完就和doule ,int 类型相互转换的规则是一

2015-11-20 10:55:55 492

空空如也

空空如也

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

TA关注的人

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