自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wow_bc的博客

仅作个人笔记之用,访客请小心求证

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

原创 Android 消息机制笔记

参考资料:gityuan的知乎回答,http://gityuan.com,weibo.com/gityuan(微博)1.基础知识1.android系统不能在子线程中更新UI;因为系统的UI控件不是线程安全的,如果使用加锁使其线程安全,则会让UI控件变得复杂和低效,并可能阻塞某些进程的执行。2.ThreadLocal类用来提供线程内部的局部变量。这些变量在多线程环境下访问(通过g

2017-08-31 22:20:38 306

原创 Android 样式 菜单笔记

样式和主题样式是指为 View 或窗口指定外观和格式的属性集合。样式的XML文件必须保存在res/values/文件夹内,该XML文件的根节点必须是,对于您想创建的每个样式,向该文件添加一个元素,该元素带有对样式进行唯一标识的name属性(该属性为必需属性),样式的每个属性用。主题是指对整个 Activity 或应用而不是对单个 View(如上例所示)应用的样式。主题的XML文件与

2017-08-15 16:00:07 731

原创 Android ListView笔记

1 AdapterView和AdapterAdapterView的子类有ListView,GridView,可通过继承自它们来自定义此类型的view,并通过实现AdapterView.OnItemClickListener接口来响应AdapterView中每一项上的点击事件,布局文件中对应等标签为:、。Adapter充当数据源与AdapterView之间的桥梁,Adapter将数据与其

2017-08-15 15:56:32 255

原创 Android Service笔记

1、服务Service 是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件。服务基本上分为两种形式:(1)启动:应用组件通过调用 startService() 启动服务(这会导致对 onStartCommand() 的调用),服务将一直运行,直到服务使用 stopSelf() 自行停止运行,或由其他组件通过调用 stopService() 停止它为止。(2)绑定:应用组件

2017-07-31 19:59:15 237

原创 Android fragment笔记

1 fragmentFragment 表示 Activity 中的行为或用户界面部分。您可以将多个片段组合在一个 Activity 中来构建多窗格 UI,以及在多个 Activity 中重复使用某个片段。不过,片段并非必须成为 Activity 布局的一部分(比如retainInstancefragment);您还可以将没有自己 UI 的片段用作 Activity 的不可见工作线程。

2017-07-26 16:08:56 248

原创 Android Activity笔记

1 Activity状态Activity 基本上以三种状态存在:继续:此Activity位于屏幕前台并具有用户焦点。(有时也将此状态称作“运行中”。)暂停:另一个Activity 位于屏幕前台并具有用户焦点,但此Activity 仍可见。但在内存极度不足的情况下,可能会被系统终止。停止:该 Activity 被另一个Activity 完全遮盖(该 Activity 目前位于“后台”

2017-07-26 16:00:12 269

原创 Android应用组件及Intent

1、四大应用组件①Activity,Activity 表示应用中的一个屏幕,在manifiest中的声明方式:②服务Service,Service 是一个不使用用户界面而在后台执行操作的组件,在manifiest中的声明方式:;③内容提供程序ContentProvider,在manifiest中的声明方式:;④广播接收器BroadcastReceiver,在manifiest中的声

2017-07-22 18:23:04 355

原创 Android动画笔记

1、动画分类1、动画分为两种类型:一、Property Animation:属性动画通过Animator类来实现,通过该修改object的属性来实现动画效果,通过Animator类实现;二、View Animation:视图动画,分为两种类型:1、Tween animation: 补间动画,通过在单张图片进行一系列变换来实现动画效果,通过Animation类实现;2、F

2017-07-22 18:05:23 192

原创 Andoird屏幕适配

1、基本概念1、屏幕尺寸:按屏幕对角测量的实际物理尺寸。Android将所有实际屏幕尺寸分组为四种通用尺寸:小、正常、大和超大。从Android 3.2(API 级别 13)开始,这些尺寸组已弃用,而采用根据可用屏幕宽度管理屏幕尺寸的新技术。2、屏幕密度:屏幕物理区域中的像素量;通常称为 dpi(每英寸点数)。Android 将所有屏幕密度分组为六种通用密度:低、中、高、超高、超超高和超超

2017-07-20 20:32:43 246

原创 Android权限笔记

1、Android 是一个权限分隔的操作系统,其中每个应用都有其独特的系统标识(Linux 用户 ID 和组 ID)。在安装时,Android 为每个软件包提供唯一的 Linux 用户 ID。由于在进程级实施安全性,因此任何两个软件包的代码通常都不能在同一进程中运行,因为它们需要作为不同的 Linux 用户运行。您可以在每个软件包的 AndroidManifest.xml 的 manife

2017-07-19 20:48:31 272

原创 【java】最短路径算法

Dijkstra算法Dijkstra算法可用于求正权图上的单源最短路径,该算法适用于有向图和无向图。如果要求每两点之间的最短路径,需要调用n次Dijkstra算法,或者使用Floyd算法。该算法的伪代码:清除所有点的标号设d[0]=0,其他d[i]=INF循环n次{ 在所有未标号节点中,选出d值最小的节点x 给结点x标记 对于从x出发的所有边(x,y),更

2017-05-09 18:41:56 2413

原创 【java】最小生成树

航海家们在太平洋上发现了几座新岛屿,其中最大的一个岛已经连接到Internet,但是其它岛和主岛之间没有电缆连接,所以无法入网。我们的目的是让所有岛上的居民都能上网,即每个岛和主岛之间都有直接或间接的电缆连接。输入每两个岛屿之间的连接成本,要求给出最节省成本的方案。先输入边的数量n,然后输入n组数据,每组数据包括起点u,终点v,成本weight;样例输入:61 2 101 4

2017-05-09 16:13:34 1907 1

原创 【java】表达式树

根据数学表达式建立表达式树对于数学表达式a+b*(c-d)-e/f,可以表示成如下图所示的二叉树,要建立二叉表达式树,方法有很多,下面介绍一种:找到最后计算的运算符,然后递归处理。对于最后计算的运算符,+ -号在* /号之后计算,而对于相同优先级的运算符(+和-,*和/),我们规定最右出现的先计算(也可按其他顺序设计程序)。输入数学表达式,然后输出后缀表达式。样例输入:

2017-05-09 11:22:28 2637

原创 【java】计数排序 基数排序

计数排序设待排序的n个数都是介于0~k之间的整数,当k=O(n)时,我们常采用计数排序,其时间复杂度为O(n)。计数排序的思想是,对于每一个元素x,统计出小于等于x的元素个数,从而直接确定它在排序后的位置。样例输入:101 2 11 33 11 23 6 9 2 6样例输出:1 2 2 6 6 9 11 11 23 33import java.util.Sc

2017-05-07 20:58:32 254

原创 【java】堆排序 最小的k个数

堆排序二叉堆是一颗完全二叉树,完全二叉树可以存放在一维数组中,如果将数组从0开始编号,则对a[i],它的左子树及右子树分别是a[2*i+1]和a[2*i+2]。二叉堆有大根堆和小根堆,是指每个结点的值大于(/小于)它们子结点的值。调整堆假设结点a[i]的左子树和右子树都已经是最大堆,将根节点为a[i]的树调整为最大堆。过程:将a[i]分别与左右子节点比较,然后与其中最大的一个交换位

2017-05-07 16:42:02 736

原创 【java】背包问题

部分背包问题有n个物体,第i个物体的重量为wi,价值为vi。在总重量不超过C的情况下让总价值尽量高。每一个物体都可以之取走一部分,价值和重量按比例计算。分析:贪心法即可求得最优解。贪心策略是优先拿“价值除以重量的值”最大的,直到重量和正好为C。先输入物品个数n以及背包总重量c,之后输入每个物品的重量及价值,输出选取的物品以及该物品的比例,最后输出最大的总价值。每个物品按输入顺序从1到n

2017-05-01 16:21:42 700

原创 【java】硬币问题

有n种硬币,面值分别为V1,V2,...,Vn,每种都有无限多。给定非负整数S,可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目的最大值和最小值。1分析:本题的本质也是DAG上的路径问题。

2017-04-30 14:20:08 1200

原创 【java】嵌套矩形

有n个矩形,每个矩形可以用两个整数a,b表示,分别表示它的长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a例如:1,5可以嵌套在6,2内,但不能嵌套在3,4内。给出n个矩形,选出尽量多的矩形排成一行,使得除了最后一个之外,每一个矩形都可以嵌套在下一个矩形内。先输入矩形的数目n,紧接着输入n行,每行代表一个矩形,最后输出选出的矩形。样例输入:61,24,3

2017-04-30 14:01:32 707

原创 【java】数字三角形最长路径

有一个由非负整数组成的三角形,第一行只有一个数,除了最下行之外每个数字的左下方和右下方各有一个数,如下图所示:每个结点的值代表它的权值,从第一行开始,每次可以往左下或右下走一格,直到走到最下行,把沿途经过的数全部加起来,如何走才能使得这个和尽量大。输入n代表三角形行数,然后输入每行各个结点的权值,样例输入:413 24 10 14 3 2 20样例输出:

2017-04-29 10:30:40 1958

原创 【java】蛇形填数 螺旋填数

蛇形填数在n*n的方阵里填成蛇形,例如:    1    2    3   4  5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9原理:创建一个二维数组,将数组清零,用a[i][j]==0判断该位置是否已填数,用x,y记录下一个数的坐标,t记录填入的数字。样例输入:5样例输出:1

2017-04-27 11:53:02 3988 2

原创 【java】快速排序 数组中超过一半的数字

快速排序快速排序与归并排序一样,也是基于分治的思想,不同处在于①划分问题的方法在快速排序中,每次划分以第一个数字为基准pivot,将数组划分为两部分,左半部分的值全部=pivot;在归并排序中,每次划分把数组划分为元素个数尽量相等的两半。②合并问题的方法在快速排序中,划分问题的过程中,已经保证了部分顺序,不用在最后合并问题;在归并排序中,还需要在最后合并问题③时

2017-04-27 10:34:09 292

原创 【java】Huffman编码

输入n个字符以及它的频率,输出对应的Huffman编码。样例输入:6a,45b,13c,12d,16e,9f,5样例输出:a:0c:100b:101f:1100e:1101d:111import java.util.ArrayList;import java.util.Collections;class Node imp

2017-04-26 16:30:51 180

原创 【java】选择区间 区间选点

选择区间数轴上有n个开区间(ai,bi),选择尽量多个区间,使得这些区间两两没有公共点。样例输入;51,45,63,46,74,5样例输出:1,44,55,66,7import java.util.Scanner;import java.util.ArrayList;import java.util.Collections;c

2017-04-26 15:27:08 2688

原创 【java】二分查找 求下界 求上界

二分查找要求数组必须是有序数组,输入数组长度n以及查找元素值key,然后输入n个元素,输出key所在的位置,不存在则输出-1.样例输入:8 231 4 14 23 55 66 77 884 61 4 7 8样例输出:3-1import java.util.Scanner;public class Main { public static void ma

2017-04-26 13:06:37 889

原创 【java】归并排序 逆序对数

归并排序按照分治三步法,介绍归并排序步骤:划分问题:把序列分成元素个数尽量相等的两半;递归求解:把两半元素分别排序;合并问题:把两个有序表合并成一个。前两部分容易完成,关键在于如何合并问题。归并排序代码:import java.util.Arrays;import java.util.Scanner;public class Main { public stat

2017-04-26 11:08:02 1224

原创 【java】八数码问题

编号为1~8的正方形方块摆成3行3列,每次可以把与空格相邻的滑块移动到空格中,而原来的位置就成为了新的空格,给定初始局面和目标局面,计算出最少的移动步数。264137 58样例输入:2 6 4 1 3 7 0 5 82 6 4 1 3 0 5 8 72 6 4 1 3 7 0 5 88 1 5 7

2017-04-25 14:13:09 862

原创 【java】素数环

输入正整数n,把整数1,2,3,...,n组成一个环,使得相邻两个整数之和均为素数,输出从整数1开始逆时针排列。同一个环应该只输出一次。n样例输入:6样例输出:1 4 3 2 5 61 6 5 2 3 4import java.util.Arrays;import java.util.Scanner;public class Main { public stat

2017-04-24 18:19:45 567

原创 【java】N皇后问题

在一个N*N的棋盘上放置N个皇后,使她们互相不在同行同列,或同对角线,输出有多少种可能。样例输入:38样例输出:092import java.util.Scanner;public class Main { public static int search(int[] res,int cursor){ int sum=0; if(cursor==res.l

2017-04-24 17:19:38 231

原创 【java】全排列 枚举子集

全排列:输入一个包含n个字符的字符串,输出该字符串的全排列。样例输入:abcab样例输出:abcacbbacbcacabcbaabbaimport java.util.Scanner;import java.util.Arrays;public class Main { public static void permutati

2017-04-24 16:05:11 1035

原创 【java】拓扑排序

输入m以及n个二元组(u,v),其中m表示元素个数,(u,v)表示表示元素u必须在元素v之前,输出从小到大可能的排序,任意一种即可。样例输入:4 30,12,13,22 21,00,1样例输出:3201false基于DFS的拓扑排序算法:import java.util.Scanner;import java.util.Arrays

2017-04-23 10:19:44 207

原创 【java】走迷宫最短路径

输入一个n*m的迷宫,1表示空地,0表示障碍物,输出从某个点到某个点的最短路径样例输入:6 51 1 0 1 11 0 1 1 11 0 1 0 01 0 1 1 11 1 1 0 11 1 1 1 10 00 3样例输出:DDDDRRUUURUimport java.util.LinkedList;import java.util.Que

2017-04-22 16:06:32 7424 1

原创 【java】黑白图像

输入一个n*n的黑白图像,统计其中黑色八连块的个数,0代表白,1代表黑。样例输入:61 0 0 1 0 00 0 1 0 1 00 0 0 0 0 01 1 0 0 0 01 1 1 0 0 00 1 0 1 0 0样例输出:3import java.util.Scanner;import java.util.Arrays;public cla

2017-04-22 12:07:38 729

原创 【java】二叉树重建

输入二叉树的后序遍历和中序遍历,输出它的先序遍历。样例输入:ACBFGED ABCDEFGCDAB CBAD样例输出:DBACEGFBCADimport java.util.Scanner;public class Main { public static StringBuffer str=new StringBuffer();

2017-04-22 12:00:20 218

空空如也

空空如也

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

TA关注的人

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