自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 synchronized和ReentrantLock实现消费者生产者问题

并发执行和并行执行的区别:并行执行是指两个或多个事件在同一时刻发生,而并发执行是指两个或多个事情在同一时间间隔内发生。并发执行在宏观层面上看,事情之间是同时发生的。比如说在2秒的时间内发生的两件事情,在历史的角度上可以看作是“同时发生”的。在Java中,多个线程对临界区资源操作时,需要保持程序的可再现性,或者说内存可见性。不管哪个线程操作了临界资源,操作的结果都应该对下一个操作该资源的线程可见

2016-04-13 22:05:04 737

原创 面试题之螺旋矩阵

给定一个m*n的矩阵,按照螺旋顺序返回所有元素。举例:   1    2    3             8    9    4             7    6    5返回的应该是1 2 3 4 5 6 7 8 9.从左边开始,当碰撞到右边的边界时,转向 (向下)。然后从右到左,碰撞到左边边界时,转向 (向上)。一直到最后一个元素。public static Ar

2016-04-10 01:06:23 574

原创 给定两个有序数组,找出合并之后的数组中位数

中位数定义:假如一个数组的长度Len为偶数,那么中位数为第 Len/2 个数;如果Len为奇数,那么中位数为第Len/2+1个数。比如 Arr[ 1, 2, 3, 4, 5]中位数为3;Arr[ 2, 3, 4, 5]中位数为3。给定两个递增排序数组,请设计一种高效算法求出两个数组的中位数。比如 A[ 1, 2, 3, 4, 5]        B[ 2, 3, 4, 5]那么

2016-04-09 03:01:47 6698 3

原创 给定一个数组,找出数组缺少的最小的正整数

题目使这样的:请设计一个高效算法,查找数组中未出现的最小正整数。给定一个整数数组A,请返回数组中未出现的最小正整数。测试样例:[-1,2,3,4]返回1一看到这个题目我想到的是用另外的一个数组B,长度为A的长度+1,来存储遍历数组A的数的值。 if(A[i] == i+1)  B[i+1] = A[i]。然后遍历数组B,出现空缺的地方即是最小未出现的正整数。但是假如要求

2016-04-07 17:56:46 3816 1

原创 Java实现大数相乘

两个很大的整数如何实现相乘呢?大数超出了基本类型的表示范围,所以不能用基本类型直接相乘。我们可以通过String来对它们,各位进行分解地相乘。先来看看如何实现,首先研究一下基本的乘法规则。个位只能由个位相乘产生,十位由十位乘以个位产生,百位由百位乘以个位产生。同时还会有进位。所以获取相乘的两个数的结果位result[i+j] 的值应等于A的第i位乘以B的第j位,加上A的第j位乘以B的第i位

2016-04-05 12:15:31 1127

原创 Java实现大整数相加

在不使用BigInteger这个类的情况下,如何自己去实现两个超级大的数相加呢?首先我们来看一下加法的原则: 1.同号相加,把两数相加,结果符号位取任意一个数的符号                                                         2.异号相加,取较大的数减去较小的数,结果符号位取较大的数的符号位由于是超级大数,我们使用String来存储。

2016-04-01 15:07:06 10900 1

空空如也

空空如也

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

TA关注的人

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