上一页 1 ··· 39 40 41 42 43
摘要: 此题我曾经做过类似的(http://hi.baidu.com/lautsie/item/459a182eeddc568e6f2cc34a)但还是忘了,可见这个算法还是很tricky的。其实O(n^2)的算法还是能想到的,就是遍历每个字符,然后从该字符向两旁扩,寻找最长子串。但居然有O(n)的方法,见 阅读全文
posted @ 2013-07-17 22:11 阿牧遥 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 纯水题,想来想去指针链表类题目怎么都还是C++比较好。环境里默认没有NULL,就先用0代替了。觉得风格比较烂。后找到一个更精炼的代码,一是使用二级指针,省了一个前向变量,二是二链表同时前进结束后,做个简单判断,就不用两个while了。三是进位不知道,随便起了个up,其实overflow或是carry都要好多了。本人的代码:class Solution {public: ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) { // Start typing your C/C++ solution below /... 阅读全文
posted @ 2013-07-15 23:18 阿牧遥 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 此题一开始以为是一个水题呢,以为只要一个index往后移动就行。但后来发现漏了一个大情况,"abcadef",最长应当是"bcadef"而不是“adef"。所以需要两个指针,begin和end。1.对于这种两个指针,一个追着一个跑的,可以用一个while循环,end和start分别步进,当start赶上end时,再动end的写法;2.只有当end步进时,才需要将c放入map;3.看到网上很多人是用标志数组来存放上一次的index,会稍微省点空间和时间吧,但归根结底空间也是O(n)的,而且当字符时unicode的时候将不太好适用。(这个可以先确认 阅读全文
posted @ 2013-07-14 23:42 阿牧遥 阅读(354) 评论(0) 推荐(0) 编辑
摘要: There are two sorted arrays A and B of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).1. 第一次看到此题时,我的想法是现在A中折半查找缩小范围,比如取得A的中间数A[i],然后在B中找到A[i],然后便可以缩小范围。A中没有再找B。这个与最后的推荐做法有些类似。2. 错误或当时没想清楚的是,在B中找A[i]需要log(n)的时间,但其实不需要找A[i],直 阅读全文
posted @ 2013-07-13 01:23 阿牧遥 阅读(760) 评论(0) 推荐(0) 编辑
摘要: 本来以为是一道水题,结果居然能从n^2, n*log(n)一直优化到n。感慨啊~O(n^2): 暴力public class Solution { public int[] twoSum(int[] numbers, int target) { // Start typing your Java solution below // DO NOT write main() function int[] r = new int[2]; for (int i = 0; i l) { if (sum > targe... 阅读全文
posted @ 2013-07-09 00:12 阿牧遥 阅读(477) 评论(0) 推荐(0) 编辑
摘要: 1. 搞了好久,最后发现是cnd变量没有在每次最后统计时重置。大问题一般经常出现在小地方;2. 可以用while(c--)来给test的数量计数;3. 学习了线段树的离散化思想4. 再给线段树更新时,要注意条件。比如此处的做法是个可行的,检测是否全部覆盖,半覆盖还是未覆盖等。5. 用-1, 0, 其他 来表示各种着色情况。参考:http://www.cppblog.com/Johnnx/archive/2009/10/13/96434.html?opt=adminhttp://blog.csdn.net/lyy289065406/article/details/6799170#include 阅读全文
posted @ 2013-07-08 00:05 阿牧遥 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 并查集经典题1. 向量的思考模式2. 再计算向量时,要画图;有一个关系一开始写错了3. 本人的norm函数一开始x >= 3写成了 x>3,应该对这种小函数多做UT(口头上的,比如)4. 可以把father set一开始memset为-1参考链接http://blog.csdn.net/tiantangrenjian/article/details/7085575http://pdjlzs.diandian.com/post/2012-02-03/15719424#include using namespace std;#define ANI_MAX (50000 + 10)int 阅读全文
posted @ 2013-07-07 23:40 阿牧遥 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 第一次写DFS的程序,虽然是个水题。1. 学了memset2. 可以存下来A-Z的各个次方的结果3. 可以排序优化4. 我用了t[0]==0来判断是否有解,也可设个flag5. 用了递归,也可用五层循环#include #include using namespace std;int n;int len;char s[15];int vis[15];int t[5];int p[5];void check(){ for (int i = 0; i t[i]) { for (int j = 0; j > n >> s; if (n == 0) { return 0; } le. 阅读全文
posted @ 2013-07-07 23:37 阿牧遥 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 快弄死我了 最后的原因是abs和fabs的区别。。。说点收获:1.cmp函数返回的是int,所以不要直接返回double相减的结果2.define inf 1e9和eps 1e-93.在整数相除得到double时要1.0*4.加上 ,用fabs取代abs,abs是用来整数取绝对值,应该用fabs5.思路上,本题可从线的角度考虑转化为从点的角度考虑,这样变为N^2,然后不用hash,然后对斜率,用排序,又有logN。最后为O(N^2*logN)6.注意边界情况7.最后找错的时候采用了随机数数据和传说中正确的代码做比较,发现它们也还是有错,只是数据弱而已8.下面的Discuss还是很有用的9. G 阅读全文
posted @ 2013-07-07 23:34 阿牧遥 阅读(270) 评论(0) 推荐(0) 编辑
上一页 1 ··· 39 40 41 42 43