上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页
摘要: https://oj.leetcode.com/problems/implement-strstr/简单的调用string::find就可以解决。高级的可以自己实现KMP或者移动哈希算法。string::find返回一个size_t,如果没找到其返回值为-1(string::npos)。class ... 阅读全文
posted @ 2014-10-08 19:41 zombies 阅读(146) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/maximal-rectangle/一堆0,1矩阵中计算出由1组成的长方形的最大面积。使用了直方图求最大面积的算法。枚举每一行p,然后在将一行上的所有列看做朝i>p方向出发的直方图,然后在这个直方图上用栈存储递增序列的那个一次遍历算法... 阅读全文
posted @ 2014-10-08 19:35 zombies 阅读(361) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/palindrome-partitioning/这个题目很简单。递归搜索+枚举就能过,只要注意递归到0时,压入一个空数组即可。class Solution {public: int n; string s; bool... 阅读全文
posted @ 2014-10-08 17:44 zombies 阅读(107) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/palindrome-partitioning-ii/普通的DP很容易想到。但是复杂度为n^3会超时。一个重要的优化是使用一个数组pm[i][j]来记录[i,j)这段子串是否为回文。这个pm不需要预计算,通过调整遍历f(i)之前子串的... 阅读全文
posted @ 2014-10-08 17:38 zombies 阅读(108) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/merge-k-sorted-lists/自底向上的归并排序,用一个step控制需要合并次数,每次都把相邻的两个表合并成一个大表存在第一个表原先所在的位置上。然后step扩大两倍。需要注意的是最后一个表如果i+step>n-1,则说明... 阅读全文
posted @ 2014-10-08 16:35 zombies 阅读(151) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/largest-rectangle-in-histogram/这道题的O(n)算法比较巧妙。基本思想是考虑某一个高度h[i],以这个高度为最高点的最大矩形两个边界高度l[i]和r[i]满足以下条件:1)h[l[i]]h[st.top(... 阅读全文
posted @ 2014-10-08 14:08 zombies 阅读(129) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/word-break/水题。简单DP。class Solution {public: int n,m; bool wordBreak(string s, unordered_set &dict) { n=s.... 阅读全文
posted @ 2014-10-07 18:00 zombies 阅读(98) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/merge-intervals/水题。需要注意sort的用法可能在平台上不好使。/** * Definition for an interval. * struct Interval { * int start; * ... 阅读全文
posted @ 2014-10-07 17:50 zombies 阅读(121) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/multiply-strings/实现两个函数:1)字符与一个串的乘法。2)两个串的加法。再考虑一些边界情况即可。class Solution {public: int n,m; string Mul(char ch,string &... 阅读全文
posted @ 2014-10-06 17:41 zombies 阅读(164) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/insert-interval/一道比较简单的题。主要就是扫描一段数组,看哪些时间段与目标时间段相交,相交的那些用来更新目标时间段。在相交结束时插入目标时间段。需要注意的是目标时间出现在两个时间段中间的情况,哪个都没有相交但是也需要插... 阅读全文
posted @ 2014-10-06 17:06 zombies 阅读(235) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页