2014年11月10日
摘要: 题意就是,有一块半圆形区域,从0,0点开始向四周扩展,每年扩展50.0面积(单位统一不用考虑)。计算给定点在第几年结束之前被圆形区域覆盖。我的思路:1、计算以给定点到原点长度的半径做半圆的面积。2、除以50.0,所得结果加1,就是所求PI取3.14159265#include#includeusin... 阅读全文
posted @ 2014-11-10 19:42 xlert 阅读(167) 评论(0) 推荐(0) 编辑
  2014年10月9日
摘要: 亚马逊的在线笔试也是OJ题目,跟谷歌差不多。当然比较诧异的是,其实难度也跟谷歌差不多!第一题:巨麻烦的一道题目,大意是比较扑克牌序列,每个序列四张牌规则一:四张牌相同。自然数字大的胜出,比如3,3,3,3 2,2,2,A规则四:两个对子。当然以对子较大的胜出,最大的对子相同,则以次大的对子较大者胜出... 阅读全文
posted @ 2014-10-09 16:58 xlert 阅读(2838) 评论(19) 推荐(1) 编辑
  2014年9月10日
摘要: 题目描述:给一个字符串s,和一个字典dict,判断是否可以按照该字典,对字符串进行分词例如s="abcabcd", dict={"abc", "abcd"},则返回true。今天心血来潮,剖析一下这道题目的思路。一拿到这个题目,就是相到简单的深搜了,从头开始枚举所有可能的字串(枚举每一个位置,每一个... 阅读全文
posted @ 2014-09-10 16:02 xlert 阅读(802) 评论(0) 推荐(0) 编辑
  2014年9月9日
摘要: 这是一个简易的Dijkstra算法的优化实现,利用了堆,这里使用C++中的优先级队列。利用STL内置的堆实现只是优化的第一步,更进一步的优化包括使用Fibonacci堆等更高级数据结构。算法中,使用邻接表作为存储图的数据结构,利用一个int数组d保存过程中及最后得到的最短路长度,再自定义一个pair... 阅读全文
posted @ 2014-09-09 18:42 xlert 阅读(682) 评论(0) 推荐(0) 编辑
  2014年9月8日
摘要: 简要说明一下:主要实现了两个操作,get,setget用来查找字符串键值对应的value,set则用来向字典树添加key-value对。这个实现参考自Algorithms 4th Edition, Robert Sedgewickconst int inf = -(1 next[key[d]], k... 阅读全文
posted @ 2014-09-08 16:36 xlert 阅读(215) 评论(0) 推荐(0) 编辑
摘要: KMP算法的实现,基于算法导论32.4节。int* generateNext(string &p){ const int m = p.length(); int *next = new int[m]; int k = -1; next[0] = -1; for (int... 阅读全文
posted @ 2014-09-08 16:35 xlert 阅读(141) 评论(0) 推荐(0) 编辑
  2014年9月7日
摘要: 1 class Heap{ 2 private: 3 int m[1000]; 4 int size; 5 public: 6 Heap(int s) :size(s){} 7 Heap(int *num, int s) :size(s){ 8 f... 阅读全文
posted @ 2014-09-07 15:07 xlert 阅读(140) 评论(0) 推荐(0) 编辑
  2014年7月19日
摘要: 这个题目,首先应当找出环内任意一点:俩指针,一快一慢(走一步,走两步),重合就是环内节点。 然后将问题转化为经典问题:寻找链表交叉节点位置。 P.S. 创建了一个GitHub项目,目前已经更新了大概十道题:https://github.com/xlinc/CrackingLeetCode.g... 阅读全文
posted @ 2014-07-19 22:42 xlert 阅读(145) 评论(0) 推荐(0) 编辑
  2014年7月18日
摘要: LRU算法思想,可粗略参考这篇文章:传送门。 首先定义节点:struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}}; 至于要实现这个题目的要求,就这样解决:利用l... 阅读全文
posted @ 2014-07-18 21:48 xlert 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 这个题目要求利用插入排序来排序一个单链表。插入排序的思想就是,长度从1开始,逐步增长已排序的序列长度。具体是:每次从未排序的序列中拿出一个元素,插入到已排序序列的正确位置。这个算法复杂度是O(N^2),在单链表中使用插入排序要比在数组中快一些,因为单链表中省去了元素移动这个步骤。 这个题目其实... 阅读全文
posted @ 2014-07-18 11:43 xlert 阅读(147) 评论(0) 推荐(0) 编辑