- 博客(14)
- 资源 (8)
- 收藏
- 关注
原创 Android 线程池框架、Executor、ThreadPoolExecutor详解
一、Java线程池Java通过Executors提供四种线程池,分别为:newCachedThreadPool 创建一个可缓存线程池,线程池的最大长度无限制,但如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool
2016-12-30 12:26:48 11166 1
原创 动态规划:如何求解最大连通节点值
题目有N个小球,上面有数字,分别对应1……N,每个小球有个价值,第i个小球价值对应Value[i];有N-1个木棍,一个木棍两端分别连接着一个小球,把N个小球连接起来,并且保证任意两个小球间都不存在两条不同的路径可以互相到达。现在要把1号小球连通的M个刷上油漆(连通指的是这一些涂漆的小球可以互相到达并且不会经过没有涂漆的小球),要求使这M个小球的值得和最大。输入每个
2016-12-29 21:26:25 1126
原创 递归调用:汉诺塔
题目:编程解决汉诺塔问题,使用数据结构栈(偷个懒,如果不知道汉诺塔是什么,请自行Google)解答一:递归调用汉诺塔是个非常经典的问题,讲递归时应该都会讲到它。如果我们没有递归的先验知识, 直接去解答这道题,常常会觉得不知道如何下手。用递归却可以非常优美地解决这个问题。使用递归的一个关键就是,我们先定义一个函数,不用急着去实现它, 但要明确它的功能。对于汉诺塔问题,我们定义如下函数原型
2016-12-29 10:25:11 1939
原创 经典算法:寻找最近公共祖先
题目假设现在他知道了N个人的信息——他们的父亲是谁。给出两个人的名字,找出这两个人是否存在同一个祖先,如果存在,那么他们的所有共同祖先中辈分最低的一个是谁?输入输出每个测试点(输入文件)有且仅有一组测试数据。每组测试数据的第1行为一个整数N,意义如前文所述。每组测试数据的第2~N+1行,每行分别描述一对父子关系,其中第i+1行为两个由大小写字母组成的字符串F
2016-12-28 20:14:08 7384
原创 动态规划:求解最长递增子序列(LIS)
题目1:一个序列有N个数A[1],A[2],…,A[N],求出最长非降子序列的长度。 (DP经典问题LIS:longest increasing subsequence)注意:此处的子序列不一定是连续的,这跟最大连续子序列求和不一样!分析:我们定义d(i),表示前i个数中以A[i]结尾的最长非降子序列的长度,则动态规划转移方程为:d(i) = max{1, d(j)+1},其中
2016-12-25 23:28:44 1862
原创 树中的最长路径
题目N个结点,用(N-1)个线段连接起来,组成一棵树。这棵树中距离最远的两个结点之间相隔的距离。注意:是任意两个结点的最远距离,不是树的深度。解法这个题目很像二叉树中,求距离最远的两个结点的距离。在求解时,递归求解每个结点的最大深度,假设左子树深度为L,右子树深度为R,那么经过这个结点的,且以这个结点为根节点的子树中,最远两个结点的距离为L+R。且其父节点的左子
2016-12-25 16:06:18 7267 1
原创 约瑟夫环问题:圆桌报数问题
约瑟夫环问题:一圈共有N个人,开始报数,报到M的人自杀,然后重新开始报数,问最后自杀的人是谁?如图:内环表示人排列的环,外环表示自杀顺序;上面N=41,M=3。最普通办法就是模拟整个过程:建一个bool数组,true表示此人还活着,false表示已经自杀。可以模拟整个过程[cpp] view plain copy
2016-12-24 23:43:08 5642
原创 找完全二叉树最底层最右边的结点
题目:用log(n)算法 找完全二叉树最底层最右边的结点一颗二叉树的总结点其实是知道的,设为N。如上图,总共有15个结点,那么找15号结点只需从根结点开始,向右--向右--向右。假设只有14个点,那么向右--向右--向左假设只有13个结点,那么向右---向左---向右…………可以找到规律,总结点数即为最后一个结点,也就是我们要找的
2016-12-24 20:04:56 2353
原创 二进制智力题
1、现有1000个苹果,10个盒子,现在要你将1000个苹果装入10个盒子中,使得用户无论购买多少个苹果(1-1000),都能由若干个盒子拼装而成(卖的时候是整个盒子卖,不能拆盒子的包装)解法:考虑1, 2, 4, 8这四个数,由这四个数可以组成1-15之间任意一个数,也即1,2, 4 ... 2n 可以组成1-2(n+1)-1之间所有的数。所以这十个盒子分别放入1, 2, 4,
2016-12-24 20:02:52 1832
原创 动态规划:最长回文字符串
题目:请从一个已知的字符串中寻找最长回文字符串解法1:动态规划回文字符串的子串也是回文,比如P[i,j](表示以i开始以j结束的子串)是回文字符串,那么P[i+1,j-1]也是回文字符串。这样最长回文子串就能分解成一系列子问题了。这样需要额外的空间O(N^2),算法复杂度也是O(N^2)。 状态方程和转移方程: P[i, j] =
2016-12-24 19:47:30 12851 6
转载 Android应用程序进程启动过程的源代码分析
转自:老罗的Android之旅 http://blog.csdn.net/luoshengyang/article/details/6747696Android应用程序框架层创建的应用程序进程具有两个特点,一是进程的入口函数是ActivityThread.main,二是进程天然支持Binder进程间通信机制;这两个特点都是在进程的初始化过程中实现的,本文将详细分析Android应用程序进程
2016-12-15 14:30:44 734
原创 深入理解面向切面的编程AOP、AspectJ、Spring
Spring:是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架。Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。AspectJ:是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法,所以它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件.一、AOP介
2016-12-07 13:59:40 3646
原创 Java IO流操作汇总: inputStream 和 outputStream
我们在进行Android java 开发的时候,经常会遇到各种IO流操作。IO流操作一般分为两类:字符流和字节流。以“Reader”结尾都是字符流,操作的都是字符型的数据;以“Stream”结尾的都是字节流,操作的都是byte数据。现将各种常见IO流总结如下:一、字节流1.inputStream 和 outputStreaminputStream 和 outputStream为各种输
2016-12-06 14:35:04 67852 5
原创 ART环境对Android热修复方案的影响分析
一、ART(Android Runtime)ART是Android在4.4版本中引入的新虚拟机环境,在5.0版本正式取代了Dalvik VM。ART环境下,App安装时其包含的Dex文件将被dex2oat预编译成目标平台的机器码,从而提高了App的运行效率。在这个预编译过程中,dex2oat对目标代码的优化过程与Dalvik VM下的dexopt有较大区别,尤其是在5.0版本以后ART环境下新
2016-12-05 11:26:01 1881
android PackageManager 反射调用相关的类
2016-08-03
Cordova_android_demo
2016-01-21
WD412.exe驱动程序开发工具
2009-08-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人