摘要: OAuth协议是用于授权的开放标准。目前有两个版本1.0与2.0,后一个版本并不兼容前面的版本,而是考虑了客户端程序开发的简洁性。授权的参与者有三方,一般称作Service Provider, Consumer, User。通常的情形是,User想访问Consumer的资源,而又对其不信任,可以用信... 阅读全文
posted @ 2014-08-11 13:47 夏目家的猫咪老师 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 先做不翻转的深度搜索,然后翻转当前的比特位,再递归地深度搜索。 阅读全文
posted @ 2014-05-02 21:37 夏目家的猫咪老师 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 这个题目的递归解法是容易的,但有大量的重复计算,如果不存在没有解码的子串的话,会是指数级的时间复杂度。然而,我们能够通过记录已经计算过的子问题,来降低重复计算,于是有了改进的版本一。但版本一种需要O(n)的空间复杂度。进一步观察问题,发现递推关系其实比较像斐波那契数列,不同之处在于递推关系中的求和是有条件的,我们可以定义指示变量用迭代的方式解决,只需要常数的空间。在递归的解法中子问题是字符串的后缀,而迭代解法中子问题是字符串的前缀。 阅读全文
posted @ 2014-05-02 18:01 夏目家的猫咪老师 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 递归枚举集合的子集合,当所有元素不相同时,共有2^n个子集合;当有相同元素时,子集合的数目会减少,如果其中一个元素a出现了b次,那么子集合的数目为2^(n-b)*(b+1)个。 阅读全文
posted @ 2014-04-30 22:59 夏目家的猫咪老师 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 链表反转的简单变形。 阅读全文
posted @ 2014-04-30 20:49 夏目家的猫咪老师 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 文中用快慢指针详细分析了在有环路的链表上,两个指针会在何时、何地相遇,如何知道相遇点偏离了环路起点多远。 阅读全文
posted @ 2014-04-29 20:17 夏目家的猫咪老师 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 两种思路,一种递归的解决T(n) = T(n-2) + O(n);另外一种思路,将后一半的链表原地反转,然后再逐个遍历拼接到前一半的链表上。这种做法能够在O(n)的时间复杂度内完成。 阅读全文
posted @ 2014-04-28 23:01 夏目家的猫咪老师 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 借助堆栈完成迭代形式的后序遍历 阅读全文
posted @ 2014-04-28 21:44 夏目家的猫咪老师 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 借助堆栈完成迭代形式的先序遍历。 阅读全文
posted @ 2014-04-28 21:34 夏目家的猫咪老师 阅读(215) 评论(0) 推荐(0) 编辑
摘要: LRU(Least Recently Used)是经典的页面调度算法,基本思想是将近期刚刚访问的页面放在队尾,最久未被访问的页面放在队头,发生缺页中断时,将队头元素换出,从队尾加入。上述的所有过程都要及时更新,比如访问的页面在内存中,要及时将其放在队尾。频繁地插入与删除操作,使得LRU算法适合用链表实现,为了提高链表的随机访问效率,可以配合map来查找,这样能够将访问(get)与存入(set)操作都在O(log n)的时间复杂度内完成。 阅读全文
posted @ 2014-04-28 15:02 夏目家的猫咪老师 阅读(255) 评论(0) 推荐(0) 编辑