自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

A2BGeek的专栏

强大源于自律

  • 博客(69)
  • 资源 (8)
  • 收藏
  • 关注

原创 【数据结构与算法】重建二叉树

只能根据前序中序或者中序后序重建二叉树,不可能根据前序和后序重建,因为需要中序去划分左右子树。代码实现/** * 源码名称:ConstructBT.java * 日期:2014-09-05 * 程序功能:重建二叉树(前序中序) * 版权:CopyRight@A2BGeek * 作者:A2BGeek */public class ConstructBT { class

2014-09-05 11:35:39 1064

原创 【数据结构与算法】java链表操作

链表操作代码量少但是比较容易出错,是比较适合面试的地方。代码实现/** * 源码名称:MyLinkList.java * 日期:2014-09-05 * 程序功能:java链表操作 * 版权:CopyRight@A2BGeek * 作者:A2BGeek */import java.util.Stack;public class MyLinkList { cla

2014-09-05 09:53:07 885

原创 【数据结构与算法】字符串匹配KMP算法

首先需要了解一下BF暴力匹配算法,这个算法为每一个串设置一个指针,然后两个指针同时后移,出现不匹配的情况后,主串指针回到开始后移之前的位置的下一位,模式串指针回到最开始。对比一下KMP算法,同样是设置两个指针,然后两个指针同时后移,出现不匹配的情况后,主串指针不变,模式串指针回溯一定的距离。具体模式串指针回溯多少,是第一次看KMP算法的人比较难以理解的,其实仔细想想,模式串的前缀和后缀其实也是

2014-09-03 10:19:48 1059

原创 【数据结构与算法】LCS(连续)

今年阿里的笔试题,就有一道是求连续的公共子串。思路一:我当时第一反应是把其中较短的一个串的所有子串的都求出来,然后用这些子串(先用长度较长的)去长串里面做匹配。后来一想效率太低了。思路二:效仿不连续的LCS问题,先把表填了,然后再在表里面找。代码实现/** * 源码名称:LCString.java * 日期:2014-09-02 * 程序功能:LCS(连续) *

2014-09-03 08:55:58 1085

原创 【数据结构与算法】LCS(不连续)

这个问题很经典,典型的动态规划,动态规划就是填一个表,然后遍历一下就行了。代码实现/** * 源码名称:LCSequence.java * 日期:2014-09-02 * 程序功能:LCS(不连续) * 版权:CopyRight@A2BGeek * 作者:A2BGeek */public class LCSequence { private String mOn

2014-09-02 17:02:36 1183

原创 【数据结构与算法】图的深度与广度遍历

图的深度遍历与广度遍历与二叉树的遍历类似,但是因为是图,需要有个数组存一下点是否被遍历过。代码实现/** * 源码名称:GraphIterateMatrix.java * 日期:2014-08-25 * 程序功能:图的深度与广度遍历 * 版权:CopyRight@A2BGeek * 作者:A2BGeek */import java.util.LinkedList;

2014-08-25 17:15:50 1520

原创 【数据结构与算法】二叉树广度遍历

二叉树的广度遍历想想还是比较简单的,利用队列存储当前结点的左儿子和右儿子用作未来的访问。代码实现/** * 源码名称:TreeBFS.java * 日期:2014-08-25 * 程序功能:二叉树广度遍历 * 版权:CopyRight@A2BGeek * 作者:A2BGeek */import java.util.LinkedList;import java.u

2014-08-25 11:11:44 1048 1

原创 【数据结构与算法】二叉树深度遍历(非递归)

据说这个笔试面试的时候很容易考到,所以写到这里。图示代码实现/** * 源码名称:TreeIteratorNoRecursion.java * 日期:2014-08-23 * 程序功能:二叉树深度遍历(非递归) * 版权:CopyRight@A2BGeek * 作者:A2BGeek */import java.util.Stack;public

2014-08-23 22:55:42 1336

原创 【数据结构与算法】二叉树深度遍历(递归)

二叉树的深度遍历用递归的话就没有什么好说的了。代码实现/** * 源码名称:TreeIteratorRecursion.java * 日期:2014-08-23 * 程序功能:二叉树深度遍历 * 版权:CopyRight@A2BGeek * 作者:A2BGeek */public class TreeIteratorRecursion { class TreeN

2014-08-23 16:06:03 1432

原创 【数据结构与算法】二分查找

基本思想首先将给定的值K与表中中间位置元素比较,若相等,则查找成功;若不等,则所需查找的元素只能在中间数据以外的前半部分或者后半部分,缩小范围后继续进行同样的查找,如此反复,直到找到为止。代码实现/** * 源码名称:BinarySearch.java * 日期:2014-08-14 * 程序功能:二分查找 * 版权:CopyRight@A2BGeek * 作者:A

2014-08-14 10:51:11 1090

原创 【数据结构与算法】顺序查找

基本思想顺序查找是最简单的查找方法,从线性表的一端开始,依次将每个记录的关键字与给定值进行比较。代码实现/** * 源码名称:SeqSearch.java * 日期:2014-08-13 * 程序功能:顺序查找 * 版权:CopyRight@A2BGeek * 作者:A2BGeek */public class SeqSearch { public stati

2014-08-13 16:37:34 1323

原创 【数据结构与算法】二路归并排序

二路归并排序的时间复杂度是O(n*log2n),空间复杂度是O(n)。代码如下:/** * 源码名称:MergeSort.java * 日期:2014-08-11 * 程序功能:合并排序 * 版权:CopyRight@A2BGeek * 作者:A2BGeek */public class MergeSort { public void mergeSort(int[]

2014-08-11 17:00:39 1413

原创 【数据结构与算法】希尔排序

希尔排序的时间复杂度是O(n^1.3)~O(n^2),空间复杂度是O(1)。代码如下:/** * 源码名称: ShellSort.java * 日期:2014-08-11 * 程序功能:希尔排序 * 版权:CopyRight@A2BGeek * 作者:A2BGeek */public class ShellSort { public void shellSort(i

2014-08-11 11:29:06 933

原创 【数据结构与算法】直接插入排序

直接插入排序的时间复杂度的O(N^2),空间复杂度是O(1)。下面是代码:public class InsertionSort { public void insertionSort(int[] in) { int length = in.length; int i, j; for (i = 1; i < length; i++) { int tmp = in[i];

2014-08-11 10:53:55 1089

原创 【数据结构与算法】堆排序

堆排序的时间复杂度是O(nlogn),下面上代码public class HeapSort { public void adjustHeap(int[] in, int index, int length) { int leftcIndex = index * 2 + 1; int rightcIndex = index * 2 + 2; int bigest = index;

2014-08-08 15:31:01 911

原创 【leetcode系列】Valid Parentheses

很经典的问题,使用栈来解决,我这里自己实现了一个栈,当然也可以直接用java自带的Stack类。自己实现的栈代码:import java.util.LinkedList;class StackOne { LinkedList data; int top; int maxSize; StackOne(int size) { // TODO Auto-generated co

2014-08-07 17:30:26 847

原创 【leetcode系列】3Sum

这个题我最开始的思路是:先一个数定下来,然后在除这个数之外的集合里面找另外两个数,最后计算和。如此反复,对于N个数,需要进行N-2次循环。我遇到的问题就是怎么找另外两个数,其实我想过参照Two Sum里面的解法,就是用Hashtable存,键值对的结构是>,但是构造这个Hashtable就需要O(N^2),后面真正解的时候有需要O(N^2)。参考了大牛的解法后,明白了找两个数还是用两个下标

2014-08-07 10:34:13 872

原创 【数据结构与算法】选择排序

选择排序没什么好说的,直接上代码吧public class SelectSort { public void selectSort(int[] in) { int inLength = in.length; int minIndex = 0; for (int i = 0; i < inLength; i++) { minIndex = i; for (int j =

2014-08-06 21:36:21 803

原创 【数据结构与算法】快速排序

快速排序在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个。这里对快速排序的原理就不详细叙述了,这篇博客讲的非常好,点击打开链接。以下是代码:public class QuickSort { public void quickSort(int[] in,

2014-08-06 15:10:14 935

原创 【数据结构与算法】冒泡排序

排序算法是一种基本、常用的算法。怕

2014-08-06 10:03:09 822

原创 【leetcode系列】String to Integer (atoi)

这个我就直接上代码了,最开始把“abc123“也算作合法的了,后来查了一下atoi的定义,把这种去掉了。public class Solution { public static int atoi(String inStr) { long result = 0L; /* * 网上查了一下,atoi函数的定义是如果第一个非空格字符存在,是数字或者正负号则开始做类型转换, *

2014-08-06 09:05:58 974

原创 【leetcode系列】Two Sum

解法一,我自己想的,有点弱,

2014-08-05 11:44:20 716

原创 【微信易信公众平台开发】天气查询功能

我的个人博客站点已经开通,会有技术分享和其他一些有意思的东西,希望读者能去访问一下,网址是http://a2bgeek.me好久不更新了,今天为大家带来天气查询功能的开发。大家可以关注一下我的易信公众账号——A2BGeek's XX天气的查询我还真没找到神马好用的API,唯一找到的一个http://smart.weather.com.cn/wzfw/smart/weatherapi

2014-04-12 10:44:27 1597

原创 BeautifulSoup实战

最近我的博客主要都在自己的网站上写,所以在CSDN上很少更新,希望各位读者光临我的站点http://a2bgeek.me最近有个项目要用天气数据,看了一些天气网站,决定从中国天气网上抓数据,python抓数据的框架我知道的不多,只听过BeautifulSoup,下面记录一下使用BeautifulSoup抓取数据的全过程。BeautifulSoup的文档见BeautifulSoup官方文档。

2014-04-09 10:33:41 3137

转载 读懂diff

diff是Unix系统的一个很重要的工具程序。它用来比较两个文本文件的差异,是代码版本管理的基石之一。你在命令行下,输入:  $ diff diff就会告诉你,这两个文件有何差异。它的显示结果不太好懂,下面我就来说明,如何读懂diff。一、diff的三种格式由于历史原因,diff有三种格式:  * 正常格式(normal diff)  * 上下文格式(

2014-02-26 23:00:28 791

转载 linux tail命令

tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容. 1.命令格式;tail[必要参数][选择参数][文件]   2.命令功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

2014-02-25 15:46:36 761

转载 Python发送GET和POST请求

在python中,模拟http客户端发送get和post请求,主要用httplib模块的功能。1、python发送GET请求我在本地建立一个测试环境,test.php的内容就是输出一句话:[php] view plaincopyecho 'Old friends and old wines are best.';  python发送get请求

2014-02-24 10:02:08 2224

原创 Python群发邮件

今天试了试Python发邮件,突然想到能不能群发邮件呢?群发邮件是smtplib的一个bug,不过最终还是解决了。直接上代码了# encoding: utf-8from email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartimport smtplibmsg = MIMEMultip

2013-12-24 20:44:39 3321 2

转载 linux crontab命令

at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。一、crond简介crond是linux下用来周期性的执行某

2013-12-24 14:48:13 964

转载 linux chown命令

chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。   1.命令格式:    chown [选项]... [所有者][:[组]] 文件...  2.命令功能:    通过chown

2013-12-23 21:29:52 1008

转载 linux chmod命令

chmod命令用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。  文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何

2013-12-23 21:24:42 943

原创 【微信易信公众平台开发】创建自定义菜单

本系列文章均为A2BGeek原创,转载务必在明显处注明:转载自A2BGeek的【微信易信公众平台开发】系列,原文链接:http://blog.csdn.net/a2bgeek/article/details/17397157这篇博客来介绍微信易信自定义菜单的创建。概述自定义菜单是目前很多平台公众号的一个标配,比如微信、易信、支付宝手机客户端等,这个自定义菜单有什么优点呢?对

2013-12-18 19:14:43 6205 1

原创 【微信易信公众平台开发】开启开发者模式

我把微信/易信的公众号看成一个APP内的轻量级APP(此时可以把微信/易信看成是应用商店),为什么这么说呢?因为有很多日常生活需要的服务都能在公众号中得到,比如查询天气、查询快递、办理银行业务、办理手机业务等,再加上现在有了自定义菜单,俨然已经成为了一个APP,但是这种APP是有局限性的,其一是这种APP只是一个I/O型的APP,即用户输入然后得到一个输出;其二是交互方式比较单调,除了I/O就是跳

2013-12-14 10:48:40 7083

原创 【微信易信公众平台开发】写在最前面

微信和易信一样,都有公众平台,使用方法几乎一样,不过易信政策比较宽松,所以我选择了易信来写这个系列的博客,具体要做一个什么样子的例子还没有想清楚,不过先把久违的自定义菜单体验一下先。本系列的第一篇是讲解微信/易信开发者模式的开启,第二篇是讲解手机客户端上自定义菜单如何生成。第三篇。。。还没想好。

2013-12-10 10:26:12 2202

原创 【Android每周专题】网络编程

HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能:HttpURLConnection。        HttpURLConnection是java的标准类,HttpURLConnection继承自URLConnec

2013-12-08 15:11:14 2704

原创 解决红米(MTK)手机无法连接电脑进行开发调试的问题

双十一抢到了一台红米手机,说实话质量做工在799这个价位还是可以的,毕竟屌丝,只能买个便宜的手机玩玩。要使用红米作为开发机,需要两步:开启开发者选项进入“设置”选择“关于手机”,然后狂点“Android版本”(其实只要5次),话说这个操作步骤貌似是从Android4.0开始的,所有安装Android4.0及更高版本的手机都可以这样开启“开发者选项”,如图:修复adb无法

2013-11-25 19:39:12 14241 2

原创 【Android每周专题】Android中的逆向工程

apktool反编译工具的使用    1.先装JAVA环境,JDK/JRE都行,官网下载 装过的就跳过吧    2.下载apktool.jar及相关文件,这里下apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip    3.解压apktool.jar到 C:\Windows ,解压apktool-instal

2013-11-16 15:10:28 4749 2

原创 Android飞行模式的打开与关闭

在Android4.2以前可以做到使用代码进行飞行模式的开关,步骤如下:1、首先需要在AndroidManifest.xml中加入权限:2、java代码中首先进行一个putString操作,然后发送一个广播,注意不发送广播是不会生效的:if (Settings.System.getString(mContentResolver, Settings.Syst

2013-11-07 17:10:16 5718

原创 【Android每周专题】横竖屏切换和Activity中View状态的保持

每周专题名不符实,实在是惭愧,前段时间有点忙,没有及时更新,自我反省一下。本周专题分为两个部分,第一部分是横竖屏切换的相关问题,第二部分是Activity中View状态的保持。横竖屏切换一、横竖屏切换时Activity的生命周期1、启动Activity(竖屏时启动的)11-01 01:48:17.144: I/a2bgeek(945): onCreate11-01 01:4

2013-11-05 09:39:49 5099 3

原创 Linux上MongoDB的安装与配置

长话短说,一共有两种方法。(我随便选了一个发行版Mint)一、apt-get方法官网上说的很清楚:http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/1、更新软件源列表,加入mongo相关的东西:sudo apt-key adv --keyserver hkp://keyserver.ubuntu.

2013-09-12 18:02:32 3801

【Android每周专题】masterkey漏洞扫描APP——Bluebox Security Scanner

用于扫描MasterKey漏洞,请读者放心下载。

2013-11-17

【Android每周专题】横竖屏切换

三周没有写了,实在是不能原谅自己。这是横竖屏切换的实验代码,打好了日志,读者可以自己做实验。

2013-11-04

【Android每周专题】触摸屏手势实验代码

哈哈,赶上本周的末班车了。我会继续加油的。预告?还没想好写什么

2013-09-08

【Android每周专题】触摸屏事件实验代码

因为本周打算写两篇博客,下一篇会写手势相关的,所以工程的名称是GestureDemo,大家不要见怪。

2013-09-05

使用ViewGroup的导航页面

使用ViewGroup的导航页面,欢迎大家下载,学习交流。

2012-08-30

使用ViewFlipper的导航页面

使用ViewFlipper的导航页面,比较简单,欢迎大家学习

2012-08-30

Jsoup官方SDK

Jsoup官方SDK最新版1.6.3,jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。

2012-08-13

c51单片机实验40例

c51单片机的40个实验,帮你快速掌握单片机的使用

2012-04-20

空空如也

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

TA关注的人

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