摘要: 原题地址既然是求最短路径,可以考虑动归或广搜。这道题对字典直接进行动归是不现实的,因为字典里的单词非常多。只能选择广搜了。思路也非常直观,从start或end开始,不断加入所有可到达的单词,直到最终到达另一端。本质上广度优先遍历图。需要注意的是,拓展下一个单词时不能对字典进行枚举,因为字典里的单词太... 阅读全文
posted @ 2015-01-21 11:23 李舜阳 阅读(1460) 评论(0) 推荐(0)
摘要: 原题地址1. 把所有元素都塞到集合里2. 遍历所有元素,对于每个元素,如果集合里没有,就算了,如果有的话,就向左向右拓展,找到最长的连续范围,同时在每次找的时候都把找到的删掉。这样做保证了同样的连续序列只会被遍历一次,从而保证时间复杂度。时间复杂度O(n)代码: 1 int longestConse... 阅读全文
posted @ 2015-01-20 16:16 李舜阳 阅读(181) 评论(0) 推荐(0)
摘要: 原题地址动态规划题。最直观的想法就是用cut[i][j]表示子串s[i..j]的最小分割数,则有如下规则:1. 如果s[i..j]是回文串,则cut[i][j]=02. 如果s[i..j]不是回文串,则枚举分割点,将原字符串切成两个子串,求解子问题。递推公式:cut[i][j] = min{cut[... 阅读全文
posted @ 2015-01-20 15:55 李舜阳 阅读(318) 评论(0) 推荐(0)
摘要: 原题地址遍历所有小孩的分数1. 若小孩的分数递增,分给小孩的糖果依次+12. 若小孩的分数递减,分给小孩的糖果依次-13. 若小孩的分数相等,分给小孩的糖果设为1当递减序列结束时,如果少分了糖果,就补上,如果多分了糖果,就减掉究竟补多少或减多少,这很容易计算,不啰嗦了。时间复杂度:O(n)代码: 1... 阅读全文
posted @ 2015-01-20 14:45 李舜阳 阅读(203) 评论(0) 推荐(0)
摘要: 原题地址非常巧妙的方法,不需要用map,只需要O(1)的额外存储空间,分为3步:1. 先复制链表,但是这个复制比较特殊,每个新复制的节点添加在原节点的后面,相当于"加塞"2. 根据原节点的 ramdon 指针构造新节点的 random 指针3. 恢复原链表结构,同时得到新复制链表时间复杂度:O(n)... 阅读全文
posted @ 2015-01-20 14:17 李舜阳 阅读(152) 评论(0) 推荐(0)
摘要: 原题地址动态规划题令s[i..j]表示下标从i到j的子串,它的所有分割情况用words[i]表示假设s[0..i]的所有分割情况words[i]已知。则s[0..i+1]的分割情况words[i+1] = words[k] + s[k+1..i+1],其中(有三个条件要满足)(1) 0 wordB... 阅读全文
posted @ 2015-01-20 13:54 李舜阳 阅读(950) 评论(0) 推荐(0)
摘要: 原题地址这道题坑了我很久,有一组测试数据在本地跑结果是true,但是在Leetcode服务器上跑结果就是false,让我百思不得其解。后来费了好久才终于找到原因,原来还是自己的代码不够严谨,为了让代码简洁一些,有一个判断语句默认空闲内存都是0,结果就错了。这道题没有什么技巧,匹配的思路很直观,如果当... 阅读全文
posted @ 2015-01-20 11:28 李舜阳 阅读(210) 评论(0) 推荐(0)
摘要: 原题地址递归写法谁都会,看看非递归写法。对于二叉树的前序和中序遍历的非递归写法都很简单,只需要一个最普通的栈即可实现,唯独后续遍历有点麻烦,如果不借助额外变量没法记住究竟遍历了几个儿子。所以,最直接的想法就是在栈中记录到底遍历了几个儿子。代码: 1 vector postorderTraversal... 阅读全文
posted @ 2015-01-19 17:08 李舜阳 阅读(507) 评论(0) 推荐(0)
摘要: 原题地址以前Leetcode的测试数据比较弱,单纯用链表做也能过,现在就不行了,大数据会超时。通常大家都是用map+双向链表做的。我曾经尝试用C++的list容器来写,后来发现map没法保存list的iterator,总是报错,我也不知道为什么。后来只好手写双向链表,真是痛苦啊,一不小心就会出错。怪... 阅读全文
posted @ 2015-01-19 16:11 李舜阳 阅读(233) 评论(0) 推荐(0)
摘要: 原题地址方法I:固定一个点,枚举剩下的点所构成直线(斜率)先固定一个点,然后计算该点到其他所有点的斜率,最后统计得到最多的共线的点的个数。时间复杂度为O(n^2),需要借助map数据结构保存中间结果,空间复杂度为O(n)。这种方法最大的问题是需要计算斜率,需要用到除法,可能会有数据精度的问题。方法I... 阅读全文
posted @ 2015-01-19 14:03 李舜阳 阅读(630) 评论(0) 推荐(0)