Android threading
摘要:理解基本概念 Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等。MessageQueue:消息队列,用来存放Handler发送过来的消息,并按照FIFO规则执行。当然,存放Message并非实际意义的保存,而是将Message以链表的方式串联起来的,等待Looper的抽取。Looper:消息泵,不断地从MessageQueu
阅读全文
STL中rotate算法的理解
摘要:STL中rotate针对不同的迭代器有3种不同的实现,在http://blog.csdn.net/v_JULY_v/article/details/6322882中也有描述,这里以学习为目的,将这STL中rotate的RandomAccessIterator的算法整理一下 以下内容参考自:http://www.cnblogs.com/atyuwen/archive/2009/11/08/rotate.html 这里的rotate操作,也就是指循环移位。比如将串“ABCDEFG”以D为中心旋转,就相当将该串向左循环移位,直到第一个元素为D为止,最后得到新串“DEFGABC”。要想方便的完成ro.
阅读全文
Visibility
摘要:Visibility You can improve your visibility on two areas: the areas that you own, the areas that does not you own. For the areas that you own, you need dig deeply on this to get the point that you nee...
阅读全文
数组分割类问题
摘要:问题1: 《编程之美》有一个没有排序,元素个数为2N的正整数数组。要求把它分割为元素个数为N的两个数组,并使两个子数组的和最接近。 问题2:有两个序列a,b,大小都为n,序列元素的值任意整数,无序; 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。 问题2的解法:http://blog.csdn.net/v_JULY_v/article/details/61...
阅读全文
将二叉树转化为链表
摘要:1. 将二叉树以螺旋顺序转化为双向链表 2. 将二叉树按照中序转化为链表; http://www.cnblogs.com/xwdreamer/archive/2012/04/28/2475300.html 3. 将二叉树按照深度优先的顺序转化为链表 http://stackoverflow.com/questions/3411793/convert-a-binary-tree-to-linked...
阅读全文
RMQ与LCA总结
摘要:RMQ的问题描述: RMQ的ST解法 LCA的问题描述 LCA与RMQ的转化 http://wenku.baidu.com/view/78ceaf54ad02de80d4d8408d.html http://eriol.iteye.com/blog/1170465 http://blog.csdn.net/qiuyang0607/article/details/7652310 http:/...
阅读全文
老板是在Challenge吗?
摘要:如果有抵触情绪,很容易认为老板是在Challenge,而如果换个角度,也许问题就不是这样了,也许老板的本意不是这样的,只是提个问题,启发员工的思考
阅读全文
海量数据处理方法的分析
摘要:本文可以认为是http://blog.csdn.net/v_JULY_v/article/details/6279498的读后感,我是按照我理解的语言重新表述了一下而已。 海量数据处理的常用方法包括一下几种: 1.分而治之/hash映射 + hash统计 + 堆/快速/归并排序;2.双层桶划分3.Bloom filter/Bitmap;4.Trie树/数据库/倒排索引;5.外排序;6.分布式处理之...
阅读全文
被动工作与主动工作
摘要:你知道你在主动工作还是被动工作吗? 很多人的回答可能是:“我在主动工作”,为什么呢?也许你说的对,也许错。我下面说说我的看法。 现在的普遍现象是大家都在加班,有的是被老板强逼加班,有的是半主动加班,还有的是主动加班。这里说的主动加班并不是说自己要求加班就是主动加班,我这里想说的更多是工作内容的区别。好吧,不小心扯到了加班上,其实加班也就是工作,工作也就是加班。我只是想说,也许有的人认为我“主动”加...
阅读全文
寻找满足条件的两/三/k个数
摘要:题目:输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。 题目:一个整数数列,元素取值可能是1~N(N是一个较大的正整数)中的任意一个数,相同数值不会重复出现。设计一个算法,找出数列中符合条件的数对的个数,满足数对中两数的和等于N+1。复杂度最好是O(n),如果是O(n2)则不得分。 题目:Given a set S of n integers, are there elements a, b, c i
阅读全文
逐层打印二叉树
摘要:原题: 怎样从顶部开始逐层打印二叉树结点数据? 分析:逐层打印是个很明显的广度优先算法,BFS的首选自然是用队列保存没有被遍历过的节点,每一层查一个marker以区分不同的层,算法复杂度是每个节点被遍历一次,所以为O(n),空间复杂度为某一层的最大节点数。为O(lg(n))。 原题: 怎样把二叉树按zig-zag的顺序转换为一个链表? 分析:这个是类似的,不过就用栈了,计算复杂度为O(n),空间复杂度为O(log(n))。voidprintTreeByLevel(BinaryTreeNode*root){stack<BinaryTreeNode*>nodes_0;stack<
阅读全文