自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(548)
  • 资源 (4)
  • 收藏
  • 关注

原创 BAT实习内推 奇数位上都是奇数或者偶数位上都是偶数

给定一个长度不小于2的数组arr。 写一个函数调整arr,使arr中要么所有的偶数位上都是偶数,要么所有的奇数位上都是奇数上。 要求:如果数组长度为N,时间复杂度请达到O(N),额外空间复杂度请达到O(1),下标0,2,4,6…算作偶数位,下标1,3,5,7…算作奇数位,例如[1,2,3,4]调整为[2,1,4,3]即可private static void swap(int[] arr, int

2016-08-23 23:31:30 463

原创 网易有道 洗牌

洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程。 现在需要洗2n张牌,从上到下依次是第1张,第2张,第3张一直到第2n张。首先,我们把这2n张牌分成两堆,左手拿着第1张到第n张(上半堆),右手拿着第n+1张到第2n张(下半堆)。接着就开始洗牌的过程,先放下右手的最后一张牌,再放下左手的最后一张牌,接着放下右手的倒数第二张牌,再放下左手的倒数第二张牌,直到最后放下左手的第一张牌。接着把牌合并起

2016-08-19 23:22:12 831

原创 堆排序

1.堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]或者Key[i]>=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为大顶堆,满

2016-08-18 20:09:07 327

原创 美团 二维数组打印

题目描述有一个二维数组(n*n),写程序实现从右上角到左下角沿主对角线方向打印。 给定一个二位数组arr及题目中的参数n,请返回结果数组。 测试样例: [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]],4 返回:[4,3,8,2,7,12,1,6,11,16,5,10,15,9,14,13] public int[] arrayPrint(in

2016-08-16 19:16:59 640

原创 FutureTask源码阅读

public class FutureTask<V> implements RunnableFuture<V> { /** * 内部状态可能得迁转过程: * NEW -> COMPLETING -> NORMAL //正常完成 * NEW -> COMPLETING -> EXCEPTIONAL //发生异常 * NEW -> CANCELLED

2016-08-16 10:38:00 441

原创 ThreadPoolExecutor源码阅读

public class ThreadPoolExecutor extends AbstractExecutorService { //线程池的运行状态(整形的高3位)和运行的worker数量(低29位) private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0)); private static

2016-08-15 10:55:23 493

原创 SynchronousQueue实现原理

SynchronousQueue实现原理

2016-08-14 13:56:57 1177

原创 ArrayBlockingQueue源码阅读

//阻塞式数组队列public class ArrayBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, java.io.Serializable { //存放元素数组 final Object[] items; /** items index for next take,

2016-08-12 21:18:06 314

原创 LinkedBlockingQueue源码阅读

//阻塞式链表队列public class LinkedBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, java.io.Serializable { private static final long serialVersionUID = -6903933977591709194L

2016-08-12 20:52:45 438

原创 ConcurrentLinkedQueue源码阅读

//非阻塞,一个基于链接节点的无界线程安全队列public class ConcurrentLinkedQueue<E> extends AbstractQueue<E> implements Queue<E>, java.io.Serializable { private static final long serialVersionUID = 1967456932675

2016-08-12 19:27:02 513

原创 ConcurrentHashMap源码阅读

public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap<K,V>, Serializable { private static final long serialVersionUID = 7249069246763182397L; //table初始化

2016-08-12 09:29:28 514

原创 HashMap源码阅读

//HashMap数据结构(数组+链表+红黑树)//默认初始容量16static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16//最大容量static final int MAXIMUM_CAPACITY = 1 << 30;//默认填充因子static final float DEFAULT_LOAD_FACTOR = 0

2016-08-12 08:35:50 621

原创 ReentrantReadWriteLock

//可重入读写锁public class ReentrantReadWriteLock implements ReadWriteLock, java.io.Serializable { private static final long serialVersionUID = -6992448646407690164L; private final ReentrantR

2016-08-11 12:18:31 541

原创 Semaphore

//Semaphore称为计数信号量,它允许n个任务同时访问某个资源,public class Semaphore implements java.io.Serializable { private static final long serialVersionUID = -3222578661600680210L; /** All mechanics via AbstractQu

2016-08-10 19:05:44 1154

原创 AbstractQueuedSynchronizer

/**自旋锁,CLH锁也是一种基于链表的可扩展、高性能、公平的自旋锁,申请线程只在本地变量上自旋, * 它不断轮询前驱的状态,如果发现前驱释放了锁就结束自旋。 * * 提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架。 * * 利用了一个int来表示状态,期望它能够成为实现大部分同步需求的基础。 * * 该同步器即可以作为排他模式也可以作为共享模式,当它被定义为

2016-08-10 17:57:14 700

原创 ReentrantLock

//底层是基于AbstractQueuedSynchronizer实现public class ReentrantLock implements Lock, java.io.Serializable { private static final long serialVersionUID = 7373984872572414699L; /** Synchronizer provid

2016-08-10 12:48:10 381

原创 CountDownLatch

//CountDownLatch用于同步多个任务,强制他们等待由其他任务执行的一组操作完成。//其底层是由AQS提供支持public class CountDownLatch { /** * Synchronization control For CountDownLatch. * Uses AQS state to represent count. */

2016-08-10 11:20:14 339

原创 CyclicBarrier

public class CyclicBarrier { /** * 每一次使用CycBarrier可以当成Generation的实例 */ private static class Generation { boolean broken = false; } /** The lock for guarding barrier ent

2016-08-10 10:41:11 458

原创 网易 合唱团

有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗? 输入描述:每个输入包含 1 个测试用例。每个测试数据的第一行包含一个整数 n (1 <= n <= 50),表示学生的个数,接下来的一行,包含 n 个整数,按顺序表示每个学生的能力值 ai(-50

2016-08-09 21:07:14 1536

转载 3PC 三阶段提交协议

3PC三阶段提交(Three-phase commit),也叫三阶段提交协议(Three-phase commit protocol),是二阶段提交(2PC)的改进版本。与两阶段提交不同的是,三阶段提交有两个改动点。1、引入超时机制。同时在协调者和参与者中都引入超时机制。2、在第一阶段和第二阶段中插入一个准备阶段。保证了在最后提交阶段之前各参与节点的状态

2016-08-08 11:06:04 6703

转载 2PC 两阶段提交协议

2PC二阶段提交(Two-phaseCommit)是指,在计算机网络以及数据库领域内,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法(Algorithm)。通常,二阶段提交也被称为是一种协议(Protocol))。在分布式系统中,每个节点虽然可以知晓自己的操作时成功或者失败,却无法知道其他节点的操作的成功或失败。当一个事务跨越多个节点时,为了保持事务的A

2016-08-08 10:48:55 6384 1

原创 网易 解救小易

有一片1000*1000的草地,小易初始站在(1,1)(最左上角的位置)。小易在每一秒会横向或者纵向移动到相邻的草地上吃草(小易不会走出边界)。大反派超超想去捕捉可爱的小易,他手里有n个陷阱。第i个陷阱被安置在横坐标为xi ,纵坐标为yi 的位置上,小易一旦走入一个陷阱,将会被超超捕捉。你为了去解救小易,需要知道小易最少多少秒可能会走入一个陷阱,从而提前解救小易。 输入描述:第一行为一个整数n(

2016-08-08 00:02:58 1358 1

原创 网易 统计回文

“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。 例如: A = “aba”,

2016-08-07 23:45:20 763 2

原创 网易 饥饿的小易

小易总是感觉饥饿,所以作为章鱼的小易经常出去寻找贝壳吃。最开始小易在一个初始位置x_0。对于小易所处的当前位置x,他只能通过神秘的力量移动到 4 * x + 3或者8 * x + 7。因为使用神秘力量要耗费太多体力,所以它只能使用神秘力量最多100,000次。贝壳总生长在能被1,000,000,007整除的位置(比如:位置0,位置1,000,000,007,位置2,000,000,014等)。小易需

2016-08-07 21:08:18 1390 5

原创 网易 两种排序方法

考拉有n个字符串字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序。例如: “car” < “carriage” < “cats” < “doggies < “koala” 2.根据字符串的长度排序。例如: “car” < “cats” < “koala” < “doggies” < “carriage” 考拉想知道自己的这些字符串排列顺

2016-08-07 20:23:47 786

原创 网易 小易喜欢的单词

小易喜欢的单词具有以下特性: 1.单词每个字母都是大写字母 2.单词没有连续相等的字母 3.单词没有形如“xyxy”(这里的x,y指的都是字母,并且可以相同)这样的子序列,子序列可能不连续。 例如: 小易不喜欢”ABBA”,因为这里有两个连续的’B’ 小易不喜欢”THETXH”,因为这里包含子序列”THTH” 小易不喜欢”ABACADA”,因为这里包含子序列”AAAA” 小易喜欢”A

2016-08-07 19:52:25 1614 7

原创 网易 Fibonacci数列

Fibonacci数列是这样定义的: F[0] = 0 F[1] = 1 for each i ≥ 2: F[i] = F[i-1] + F[i-2] 因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, …,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+

2016-08-07 19:18:56 739 4

原创 网易 藏宝图

牛牛拿到了一个藏宝图,顺着藏宝图的指示,牛牛发现了一个藏宝盒,藏宝盒上有一个机关,机关每次会显示两个字符串 s 和 t,根据古老的传说,牛牛需要每次都回答 t 是否是 s 的子序列。注意,子序列不要求在原字符串中是连续的,例如串 abc,它的子序列就有 {空串, a, b, c, ab, ac, bc, abc} 8 种。 输入描述: 每个输入包含一个测试用例。每个测试用例包含两行长度不超过

2016-08-07 15:25:45 1165

原创 网易 星际穿越

航天飞行器是一项复杂而又精密的仪器,飞行器的损耗主要集中在发射和降落的过程,科学家根据实验数据估计,如果在发射过程中,产生了 x 程度的损耗,那么在降落的过程中就会产生 x2 程度的损耗,如果飞船的总损耗超过了它的耐久度,飞行器就会爆炸坠毁。问一艘耐久度为 h 的飞行器,假设在飞行过程中不产生损耗,那么为了保证其可以安全的到达目的地,只考虑整数解,至多发射过程中可以承受多少程度的损耗? 输入描述

2016-08-07 15:24:10 618

原创 网易 地牢逃脱

给定一个 n 行 m 列的地牢,其中 ‘.’ 表示可以通行的位置,’X’ 表示不可通行的障碍,牛牛从 (x0 , y0 ) 位置出发,遍历这个地牢,和一般的游戏所不同的是,他每一步只能按照一些指定的步长遍历地牢,要求每一步都不可以超过地牢的边界,也不能到达障碍上。地牢的出口可能在任意某个可以通行的位置上。牛牛想知道最坏情况下,他需要多少步才可以离开这个地牢。 输入描述: 每个输入包含 1 个测

2016-08-07 15:22:33 848

原创 网易 分苹果

n 只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案不存在输出 -1。 输入描述: 每个输入包含一个测试用例。每个测试用例的第一行包含一个整数 n(1 <= n <= 100),接下来的一行包含 n 个整数 ai(1 <= ai <=

2016-08-06 23:19:52 844

原创 网易 下厨房

牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。 输入描述: 每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。输出描述: 输出一行一个数字表示完成所有料理需要多少种不同的材料。输入例子: BUTTE

2016-08-06 22:49:25 2036

原创 之字形打印矩阵

题目描述对于一个矩阵,请设计一个算法,将元素按“之”字形打印。具体见样例。 给定一个整数矩阵mat,以及他的维数nxm,请返回一个数组,其中元素依次为打印的数字。 测试样例: [[1,2,3],[4,5,6],[7,8,9],[10,11,12]],4,3 返回:[1,2,3,6,5,4,7,8,9,12,11,10]/** * 行是奇数时从左到右,行为偶数时从右到左 *

2016-08-06 20:45:24 1159

原创 楚楚街 旅途

题目描述原来是要到醋溜站台乘坐醋溜快车到醋溜港”,亮亮解出了地图隐藏的秘密,赶紧奔向醋溜站台,但到了之后,亮亮忧桑地发现,从醋溜站台到醋溜港沿途的每个车站都有很多美女被他飒爽的英姿所吸引,只要经过车站就会被这些漂亮的女孩搭讪,但是现在亮亮一心想要寻找楚楚街而没空去搭理她们,所以亮亮希望在抵达醋溜港的时候被搭讪的次数最少。问亮亮抵达醋溜港最少会被搭讪多少次?输入描述: 第一行包含两个整数N(2<=N

2016-08-05 16:07:08 782

原创 楚楚街 寻宝

题目描述亮亮解出了卷轴隐藏的秘密,来到了一片沼泽地。这里有很多空地,而面试直通卡可能埋在任意一块空地中,好在亮亮发现了一堆木材,他可以将木材铺在两个空地之间的沼泽地上。因为亮亮不知道面试直通卡具体在哪一块空地中,所以必须要保证任意一块空地对于亮亮来说是可以抵达的。 “怎么还有鳄鱼!没办法,看来有些空地不能直接到达了。” 亮亮虽然没有洁癖,但是沼泽地实在太臭了,所以亮亮不会循环利用木材。而且木材不能拼

2016-08-05 11:32:45 1144

原创 楚楚街 解密

题目描述亮亮深吸一口气,小心地将盒子打开,里面是一张地图,地图上除了一些奇怪的字母以外没有任何路线信息,这可让亮亮犯了愁,这些字母代表了什么意思呢? 亮亮绞尽脑汁也想不出什么思路,突然,亮亮眼前一亮,“我可以把这些字母所有的排列方式全部写出来,一定可以找到答案!” 于是,亮亮兴奋的开始寻找字母里的秘密。输入描述: 每组数据输入只有一行,是一个由不同的大写字母组成的字符串,已知字符串的长度在1到9之

2016-08-04 23:49:10 802

原创 华为 最高分多少

题目描述老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩. 输入描述: 输入包括多组测试数据。 每组输入第一行是两个正整数N和M(0 < N <= 30000,0 < M < 5000),分别代表学生的数目和操作的数目。 学生ID编号从1编到N。 第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i的学生的成

2016-08-04 11:07:39 467

原创 CVTE 兔子藏洞

题目描述一只兔子藏身于20个圆形排列的洞中(洞从1开始编号),一只狼从x号洞开始找,下次隔一个洞找(及在x+2号洞找),在下次个两个洞找(及在x+5号洞找),它找了n次仍然没有找到。问兔子可能在那些洞中。输入描述: 输入有多组数据,每组数据一行两个整数分别为x和n(x <= 20,n <= 100000)输出描述: 每组数据一行按从小到大的顺序输出兔子可能在的洞,数字之间用空格隔开。若每个洞都不

2016-08-04 10:19:59 855

原创 去哪儿 5-血型遗传检测

题目描述血型遗传对照表如下: 父母血型 子女会出现的血型 子女不会出现的血型 O与O O A,B,AB A与O A,O B,AB A与A A,O B,AB A与B A,B,AB,O —— A与AB A,B,AB O B与O B,O A,AB B与B B,O A,AB B与AB A,B,AB O AB与O A,B O,AB AB与AB

2016-08-03 20:07:24 1063

原创 华为 删数

题目描述有一个数组a[N]顺序存放0-N,要求没隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。输入描述: 每组数据为一行一个整数n(小于等于1000),为数组成员数,如100,则对a[999]进行

2016-08-03 19:13:53 1830

操作系统实验 线程同步机制

实现Nachos的同步机制:锁和条件变量,并利用这些同步机制实现几个基础工具类

2013-07-13

计算机端口TCPIP详细介绍

TCPIP...............................................................................................

2011-04-16

Android例子源码使用ActionBar的高仿微信主界面设计

Android例子源码使用ActionBar的高仿微信主界面设计.

2014-07-29

仿WIN8磁帖效果的ImageView

一个仿WIN8磁帖效果的ImageView

2014-07-29

空空如也

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

TA关注的人

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