自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式之Builder模式

Builder模式(建造者模式)是一种比较简单的设计模式,说到Builder模式,比较容易想到的就是AlertDialog.Builder,安卓中AlertDialog是可以通过Builder生成的,但是为什么需要使用Builder呢,使用Builder和直接new AlertDialog有什么不同呢?下面以AlertDialog为例对Builder模式做一个简单的介绍。建造者模式也叫做生成器

2015-01-08 20:37:21 361

原创 Android入门之Fragment

工作主要做Android开发,所以也就开始了Android了,

2014-08-06 13:26:41 777

原创 LeetCode-Sort List

这个题目比较有意思,因为平时比较熟悉的排序一般就是对数组操作,题目要求O(n log n)和constant的空间复杂度,能有O(n log n)的算法一般就是merge sort,quick sort或者heap sort,这里quick sort难以实现因为核心步骤partion需要双向的指针,所以quick sort适合双向链表,这里我用merge sort,一个比较重要的方法就是用O(

2014-03-19 18:53:44 399

原创 LeetCode-Reverse Words in a String

同样还是水题一枚,不过这个题目的算法实现很多,我首先想到的就是保存每个单词,然后依次拼接即可。需要注意的是string的substr(int a,int b)函数中a为偏移量,b为子串长度,所以需要注意防止越界而crash掉。代码如下:class Solution {public: void reverseWords(string &s) { vector v;

2014-03-18 16:43:57 392

原创 LeetCode-Max Points on a Line

这也是一道比较简单的题目,不过有陷阱,比如可以有相同的点,还有斜率为极限的情况。题目要求算出最多有多少点在一条直线上,容易想到的就是一个二重循环,以一个点为中心,算出其他所有的点与它直接的斜率,然后用一个map来存储,键为斜率值为点的个数,用一个变量来记录相同的点的个数,然后依次算斜率插入map即可,因为只需要最多点,所以在每次插入的时候更新下当前在一条直线上的最多点个数,这样也可不必最后再排

2014-03-18 15:36:44 382

原创 LeetCode-Evaluate Reverse Polish Notation

水题一枚,直接压栈出栈即可,不过调用内置函数可以节省很多力气,如:int stoi(const string& s);具体代码如下:class Solution {public: int evalRPN(vector &tokens) { stack s; for(auto token:tokens){ if(is_di

2014-03-17 16:45:19 393

原创 Java观察者模式

因为最近做的一个项目用到了观察者模式,所以就写一篇文章来记录下来吧~首先观察者模式属于行为型模式,其意图是定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。总的来说,观察者模式目的就在于解除耦合,依赖关系建立在抽象之上,耦合双发都依赖于抽象而不是依赖于具体,这也正体现了依赖倒置原则。所谓观察者模式,首先我们需要的是观察者(Observe

2014-01-13 21:40:59 621

原创 codeforce round 175 div2

哎,这次的cf题比较简单的说,但是还是很粗心,只做出来两题,先说说我做的两题吧。水题两枚。 这次的主题是permutation,permutation就是一个有序的正整数集合:p1,p2,p3...pn,且各不相同,n就是这个序列的大小,序列中每个数都小于等于n,比如n=3时,则1,2,3就是一个序列。第一题,slightly decreasing permutation,定义对于一个有序的序

2013-03-22 17:43:38 605 4

原创 LA3027之并查集

在处理一些有N个元素的合并于查询问题时,我们经常会使用到并查集(union-find set)这样一种树形数据结构来处理,一般来说这样的问题都是看似很简单,但是数据量很大,容易超时,但是采用并查集这种数据结构却能很容易解决这些问题。一般来说,并查集使用数组来实现,它实现的功能也很简单,主要涉及两个基本操作:1.合并(union)两个不相交集合2.判断两个元素是否属于同一集合(find)

2013-03-20 15:38:35 376

原创 UVA 11997之多路归并问题求解

看了下同学的算法竞赛入门经典这本书,正好是UVA的题,于是就按照那个上面的顺序开始刷,看到一道题是LA上的,大概说的是有两个信号源分别按照各自周期发出信号,每个都有相应的周期,然后还有各自ID,然后让你根据发出时间和ID来输出信号源发出信号的序列,感觉类似于CPU的调度问题,就是维护一个优先队列,每次push,pop就行了。然后书中提到这题的思路可以延伸到多路归并问题的求解中,随后的一题便是多

2013-03-20 14:45:41 520

原创 UVA 11995

刷水题刷的比较爽,这题也是比较简单的一题,pat上刚刚也考过一个pop sequence与这题类似,直接模拟即可,分别建立stack,queue,priority_queue然后分别模拟push,pop,最后判断即可。 代码:#include #include #include #include #include using namespace std;int main(){

2013-03-15 22:11:03 593

原创 UVA 11991

水题一枚,将每个元素与保存它出现位置的vector建立成一个map即可,代码如下:#include #include #include #include using namespace std;map> data;int main(){ int n, m, x, y; while(scanf("%d%d", &n, &m) != EOF){ for(int i = 0

2013-03-15 22:08:31 532

原创 UVA 100题解

因为今天才开始刷UVA的题目,首先肯定是拿到简单题试试啦,这题水题一个,首先数据量很大,达到了1000000,如果写个函数每次对区间内的数判断循环数的话超时妥妥的,所以首先直接开个大数组,保存下来每个数字的循环次数,然后就是利用好已有的数字的循环次数来减少时间消耗,代码如下:#include #include using namespace std;int a[1000001];

2013-03-14 22:18:15 719

浙大数据结构专业课课程PPT

浙大精品课程数据结构与算法分析课程PPT,全英版,经典教材的完美讲解。

2011-11-07

windows 编程大全

windows 全套编程大全,中文翻译版,经典教材。。。

2011-11-07

空空如也

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

TA关注的人

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