自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(193)
  • 资源 (8)
  • 收藏
  • 关注

转载 Leetcode 刷题题解

题解地址:https://leetcode.wang

2020-10-10 20:42:42 305

原创 2020-09-02

二分查找那些坑1. 二分搜索:寻找一个数如下两种实现方式,right 边界的取值,直接影响着算法的实现细节,这些细节稍不小心就会犯错。二分查找看似简单,实则不然,真正能考虑到所有细节,把代码写准确是很不容易的。int binarySearch(int[] nums, int target) { int left = 0; int right = nums.length - 1; // 注意,搜索区间是[left, right],左闭右闭 while(left &lt

2020-09-02 17:27:17 269

原创 Android 如何引用库工程Library的资源

一、假如工程A引用Library工程B,如何在A中直接引用B的资源呢?方法一:直接将工程B的资源拷贝到工程A中方法二:在工程A的java 代码中引用B的资源R,注意R需要带上包名。例如:imageView.setImage(com.B.pkgname.R.drawable.image);方式三:在工程A的layout.xml文件中引用B的资源。<ImageView and

2017-03-08 17:41:37 5879

原创 经典算法: 输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数

题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。假如需要求的N=23106,那么计算过程如下:万位=1:1 0000--1 9999    共计10000个千位=1:   0 1 000--2 1 999    共计3*1000 = 3000,其中3表示万位可以填

2017-01-07 18:35:59 5195 1

原创 动态规划:求最长公共子序列问题

最长公共子序列问题:子序列是指在原序列中删去若干元素(这些元素可以不相邻)后得到的序列。例如X=abcbdab,Y=bdcaba,bca和bcba都是X和Y的公共子序列,且后者是最长的公共子序列。给定两个序列X(m)={x[1],x[2],...x[m]}和Y(n)={y[1],y[2],y[n]},如何找出它们的一个最长公共子序列Z(k)={z[1],...,z[k]}。动态规划算法求

2017-01-07 17:59:19 2214

原创 Android 线程池框架、Executor、ThreadPoolExecutor详解

一、Java线程池Java通过Executors提供四种线程池,分别为:newCachedThreadPool 创建一个可缓存线程池,线程池的最大长度无限制,但如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool  创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool

2016-12-30 12:26:48 11226 1

原创 动态规划:如何求解最大连通节点值

题目有N个小球,上面有数字,分别对应1……N,每个小球有个价值,第i个小球价值对应Value[i];有N-1个木棍,一个木棍两端分别连接着一个小球,把N个小球连接起来,并且保证任意两个小球间都不存在两条不同的路径可以互相到达。现在要把1号小球连通的M个刷上油漆(连通指的是这一些涂漆的小球可以互相到达并且不会经过没有涂漆的小球),要求使这M个小球的值得和最大。输入每个

2016-12-29 21:26:25 1147

原创 递归调用:汉诺塔

题目:编程解决汉诺塔问题,使用数据结构栈(偷个懒,如果不知道汉诺塔是什么,请自行Google)解答一:递归调用汉诺塔是个非常经典的问题,讲递归时应该都会讲到它。如果我们没有递归的先验知识, 直接去解答这道题,常常会觉得不知道如何下手。用递归却可以非常优美地解决这个问题。使用递归的一个关键就是,我们先定义一个函数,不用急着去实现它, 但要明确它的功能。对于汉诺塔问题,我们定义如下函数原型

2016-12-29 10:25:11 1963

原创 经典算法:寻找最近公共祖先

题目假设现在他知道了N个人的信息——他们的父亲是谁。给出两个人的名字,找出这两个人是否存在同一个祖先,如果存在,那么他们的所有共同祖先中辈分最低的一个是谁?输入输出每个测试点(输入文件)有且仅有一组测试数据。每组测试数据的第1行为一个整数N,意义如前文所述。每组测试数据的第2~N+1行,每行分别描述一对父子关系,其中第i+1行为两个由大小写字母组成的字符串F

2016-12-28 20:14:08 7447

原创 动态规划:求解最长递增子序列(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 1882

原创 树中的最长路径

题目N个结点,用(N-1)个线段连接起来,组成一棵树。这棵树中距离最远的两个结点之间相隔的距离。注意:是任意两个结点的最远距离,不是树的深度。解法这个题目很像二叉树中,求距离最远的两个结点的距离。在求解时,递归求解每个结点的最大深度,假设左子树深度为L,右子树深度为R,那么经过这个结点的,且以这个结点为根节点的子树中,最远两个结点的距离为L+R。且其父节点的左子

2016-12-25 16:06:18 7299 1

原创 约瑟夫环问题:圆桌报数问题

约瑟夫环问题:一圈共有N个人,开始报数,报到M的人自杀,然后重新开始报数,问最后自杀的人是谁?如图:内环表示人排列的环,外环表示自杀顺序;上面N=41,M=3。最普通办法就是模拟整个过程:建一个bool数组,true表示此人还活着,false表示已经自杀。可以模拟整个过程[cpp] view plain copy

2016-12-24 23:43:08 5664

原创 找完全二叉树最底层最右边的结点

题目:用log(n)算法 找完全二叉树最底层最右边的结点一颗二叉树的总结点其实是知道的,设为N。如上图,总共有15个结点,那么找15号结点只需从根结点开始,向右--向右--向右。假设只有14个点,那么向右--向右--向左假设只有13个结点,那么向右---向左---向右…………可以找到规律,总结点数即为最后一个结点,也就是我们要找的

2016-12-24 20:04:56 2376

原创 二进制智力题

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 1849

原创 动态规划:最长回文字符串

题目:请从一个已知的字符串中寻找最长回文字符串解法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 12892 6

转载 Android应用程序进程启动过程的源代码分析

转自:老罗的Android之旅 http://blog.csdn.net/luoshengyang/article/details/6747696Android应用程序框架层创建的应用程序进程具有两个特点,一是进程的入口函数是ActivityThread.main,二是进程天然支持Binder进程间通信机制;这两个特点都是在进程的初始化过程中实现的,本文将详细分析Android应用程序进程

2016-12-15 14:30:44 747

原创 深入理解面向切面的编程AOP、AspectJ、Spring

Spring:是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架。Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。AspectJ:是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法,所以它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件.一、AOP介

2016-12-07 13:59:40 3661

原创 Java IO流操作汇总: inputStream 和 outputStream

我们在进行Android java 开发的时候,经常会遇到各种IO流操作。IO流操作一般分为两类:字符流和字节流。以“Reader”结尾都是字符流,操作的都是字符型的数据;以“Stream”结尾的都是字节流,操作的都是byte数据。现将各种常见IO流总结如下:一、字节流1.inputStream 和 outputStreaminputStream 和 outputStream为各种输

2016-12-06 14:35:04 68255 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 1898

原创 Easy Application for U.S company

Easy ApplicationHave you ever tried to apply for a company only to discover they won't let you upload your resume? Instead you have to meticulously fill out pages of information (all of which could

2016-11-30 12:47:14 3660

原创 经典算法题:数字三角形寻找最大路径——动态规划和递归调用两种解法

题目:数字三角形,从顶部出发,在每一结点可以选择向左走或得向右走,一直走到底层,要求找出一条路径,该路径上的数字和最大,输出这个最大值。(1)样例输入:第一行是数塔层数N(1第二行起,从一个数字按数塔图形依次递增,共有N层。51311 812 7 26 6 14 15 812 7 13 24 11(2)样例输出:86方法1动态规划状态

2016-11-10 15:11:32 7406

原创 经典算法:字符串的匹配压缩

http://blog.csdn.net/KangRoger/article/category/2056123

2016-11-09 22:01:23 2687

原创 动态规划:最少硬币找零问题、01背包问题、完全背包问题

动态规划把问题分为子为题,解决了这些子问题,再把子问题合并起来,便可以得到问题的解。在解决子问题过程中,需要把子问题的解保存起来方便后面使用。最少硬币找零问题为:给予不同面值的硬币若干种种(每种硬币个数无限多),用若干种硬币组合为某种面额的钱,使硬币的的个数最少。在现实生活中,我们往往使用的是贪心算法,比如找零时需要13元,我们先找10元,再找2元,再找1元。如果我们的零钱可用的有

2016-11-09 15:45:15 15659 2

原创 求最大连续子序列的和,两种解法:动态规划 & Kadane算法

这是一个经典问题,对于一个包含负值的数字串array[1...n],要找到他的一个子串array[i...j](0这里我们需要注意子串和子序列之间的区别。子串是指数组中连续的若干个元素,而子序列只要求各元素的顺序与其在数组中一致,而没有连续的要求。对于一个元素数为n的数组,其含有2^n个子序列和n(n+1)/2个子串。如果使用穷举法,则至少需要O(n^2)的时间才能得到答案。该问题是197

2016-11-05 15:18:46 3410

转载 经典算法题:大数据处理常见算法题

第一部分、十道海量数据处理1、海量日志数据,提取出某日访问百度次数最多的那个IP。  此题,在我之前的一篇文章算法里头有所提到,当时给出的方案是:IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。  再详细介绍下此方案:首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同

2016-11-01 18:08:24 25247 2

转载 经典算法题目:Cracking the coding interview 问题与解答

Cracking the coding interview--问题与解答March 14, 2013作者:Hawstein出处:http://hawstein.com/posts/ctci-solutions-contents.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注

2016-10-31 00:39:47 7050

原创 经典算法题:谷歌面试经典题目

谷歌面试官经典作品(CTCI)目录1.1 判断一个字符串中的字符是否唯一1.2 字符串翻转1.3 去除字符串中重复字符1.8 利用已知函数判断字符串是否为另一字符串的子串2.1 从链表中移除重复结点2.2 实现一个算法从一个单链表中返回倒数第n个元素2.3 给定链表中间某结点指针,删除链表中该结点2.4 求由两个链表结点组成的数之和2.5 给定一个循环链表,

2016-10-31 00:14:42 9752 1

原创 经典算法题:排列组合-有放回地取不同颜色的小球

有6种不同颜色的球,分别记为1,2,3,4,5,6,每种球有无数个。现在取5个球,求在以下的条件下: 1、5种不同颜色, 2、4种不同颜色的球, 3、3种不同颜色的球, 4、2种不同颜色的球, 它们的概率。解答:排列用C,组合用A。既然题目说是无数个,就相当于有放回的取6个不同颜色的球。因此,如果任意取5个球,每取一个球都有6种可能,所有可能情况是6^5=7776,充当分母.

2016-10-30 23:27:02 27004 1

原创 解密https的建立过程

1. https协议简介     为什么是协议简介呢?因为https涉及的东西实在太多了,尤其是一些加密算法,非常的复杂,对于这些算法面的东西就不去深入研究了,这部分仅仅是梳理一下一些关于https最基本的原理,为后面分解https的连接建立以及https优化等内容打下理论基础。2. 对称加密算法     对称加密是指加密和解密使用相同密钥的加密算法。它要求发送方和接收方在安全通信之前

2016-10-28 17:24:27 4975 1

原创 经典算法题:无序整数数组中找第k大的数

经典问题:写一段程序,找出数组中第k大的数,输出数所在的位置。【解法一】先排序,然后输出第k个位置上的数我们先假设元素的数量不大,例如在几千个左右,在这种情况下,那我们就排序一下吧。在这里,快速排序或堆排序都是不错的选择,他们的平均时间复杂度 都是 O(N * logN)。然后取出前 K 个,O(K)。总时间复杂度 O(N * logN)+ O(K) = O(N * logN)。你

2016-10-27 21:02:19 37559 5

转载 Android热修复技术选型——三大流派解析

转自:移动开发前线2015年以来,Android开发领域里对热修复技术的讨论和分享越来越多,同时也出现了一些不同的解决方案,如QQ空间补丁方案、阿里AndFix以及微信Tinker,它们在原理各有不同,适用场景各异,到底采用哪种方案,是开发者比较头疼的问题。本文希望通过介绍QQ空间补丁、Tinker以及基于AndFix的阿里百川HotFix技术的原理分析和横向比较,帮助开发者更深入了解

2016-09-20 16:51:16 541

原创 Android 如何静默安装app

Android 要想静默安装app,必须是系统应用或者具有Root权限,否则根本不可能实现静默安装。本文假设你的app是系统应用(有系统签名,或者放在系统/system/app 或 /system/priv-app分区),则可以进行以下安装:1. 有提示的安装(所有第三方应用都可以)Intent intent = new Intent(Intent.ACTION_VIEW);inte

2016-08-03 15:43:03 7581 6

原创 Android ContentProvider 多进程multiprocess 详解

大家在使用ContentProvider的时候有没有发现android:multiprocess 和 android:process 这两个标签:<provider android:name="com.test.MyProvider" android:authorities="com.test.provider.authority" android:multiproce

2016-07-28 00:00:25 12681 3

原创 Android 如何判断wifi热点是否需要密码

一、最近开发wifi热点扫描功能,要判断当前连接的wifi热点是否需要密码。在网上搜索之后,发现有如下方法: private static final int WIFI_NEED_PASSWORD = 0; private static final int WIFI_NO_PASSWORD = 1; private static final int WIFI_NOT

2016-07-26 23:53:18 12360 6

原创 如何用 Gradle 构建 Android 工程项目

本篇具体介绍如何用 Gradle 构建 Android 工程项目;有关Gradle的基本语法可以参见另一篇文章:http://blog.csdn.net/wangbaochu/article/details/51177672一、签名Gradle本身支持直接签名,只需要在releas部分添加如下代码即可: signingConfigs { debug {

2016-06-22 13:59:16 2415

原创 Android 为什么当数据库改变时,与CursorAdapter关联的页面始终不更新

在android 开发过程中,也许有人会经常遇到这样的问题:CursorAdapter与一个list页面绑定,所有的代码都正确,CursorAdapter 与 Cursor也正常关联,但当数据库改变时list页面就是不更新!下面我们来看看源代码:CursorAdapter.javavoid init(Context context, Cursor c, boolean autoRequer

2016-06-16 22:26:31 3052

原创 Android 远程调试工具STF——开源项目

对于不同Android团队异地协同开发,机型适配需要花大量的时间和精力。如何协调有限的手机资源是重中之重。经常会遇到要验证一个bug,却发现手边没有对应的机型,异地团队有但是鞭长莫及。为了解决异地开发之间的困难,今天大家介绍一个远程测试机管理的工具STF(管理Android手机,能够支持主要Android版本包括Android N,客户端不需要root,STF 本身是一个基于node开发的开源项目

2016-06-03 13:07:38 18124 2

原创 Android ViewPager 如何显示大量图片

我最近想用ViewPager 来实现类似图片Gallery的效果:即滑动的时候图片一张一张显示!先搜了一下网上关于ViewPager的用法,千篇一律的都是如下的列子:public class MyPagerAdapter extends PagerAdapter { List viewList = null; public MyPagerAdapter(List vie

2016-05-23 23:03:57 6055 2

原创 Android Multidex 遇到的问题

Android 的classLoader在加载APK的时候限制了class.dex包含的Java方法总数不能超过65535,但是现在随便一个复杂一点的App,轻而易举就能超过65535。为了解决这个问题,google推出了官方的解决方案——Multidex一、使用之后,相信很多人都遇到过以下几个问题:1. Dalvik LinearAlloc Limit安装时异常 Installa

2016-04-18 14:15:18 12494 8

原创 Android Gradle 语法简介

Android Studio 是基于Gradle 作为编译系统的,下面简单总结一下Gradle!一、引言Gradle 是groovy语言实现的构建工具. groovy是运行在jvm平台的一门敏捷开发语言.其语法和java有诸多类似之处,然而其具备一些java没有的概念需要读者细细体会.下面会详细的介绍groovy的基本语法,当然如果您已经对groovy的语法有了一定的了解.可以直接跳过这一

2016-04-18 11:00:45 4281 1

android PackageManager 反射调用相关的类

Android PackageManager 有很多方法是没有暴漏出来的,我们如果想调用的话需要用Java反射。android_dependency.jar 提供了反射调用相关的class定义,直接放到你的工程libs目录下面,然后就可以进行反射调用PackageManager的API

2016-08-03

Cordova_android_demo

Cordova / PhoneGap 开发 1. 基于HTML,CSS和JavaScript的移动开发框架 2. 跨平台快速开发:能够支持iPhone,Android,Palm,Symbian, WP7, WP8, Bada和Blackberry 3. 核心功能:包括地理定位,加速器,联系人,声音和振动等 4. 拥有丰富的插件,可以以此扩展无限的功能

2016-01-21

Symbian最常用的环境安装

Symbian最常用的环境安装,自己整理的东西,网上有好多种方法,但没有一个系统的总结,该文档时对网上的各种方法的总结

2009-08-30

Symbian开发讲义-绝对的好东西

Symbian开发讲义献给从事手机开发的程序员,适合初学者入门

2009-08-30

word编辑排版技巧-适合长篇文稿的编辑

word编辑排版技巧-适合长篇文稿的编辑,经典的资料,赶快下吧

2009-08-30

高质量C++编程指南--适合有编程经验的人

适合有编程经验的人,指导你改正编程中的误区,提高代码的性能

2009-08-30

程序员面试宝典-绝对经典

好东西,奉献给即将找工作的同学们.里面收录了各大公司的笔试面试题,值得好好研究

2009-08-29

WD412.exe驱动程序开发工具

WinDriver 适合没有驱动程序开发经验的人 比DDK 和DriverStudio 入门容易,简单易学,但是所编的驱动程序不够灵活,不及前二者效率高

2009-08-21

空空如也

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

TA关注的人

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