上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 223 下一页
摘要: "题目链接" 【题解】 看到这个 "题解" 写的代码。 就是加个备忘录法。优化一下暴力的做法。 匹配的时候如果遇到 号的话,就两种可能。不再考虑它前面一个字符了。 跳过这个 或者。或者继续用 前面那个字符匹配。 即dfs(i,j+2) 不和他匹配了 && (i和j能匹配且j+1是个 则继续复制一个和 阅读全文
posted @ 2019-11-05 10:56 AWCXV 阅读(161) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 【题解】 还是要注意,取反的时候, 2^31 取反的话会爆掉Int。。(因为int的正数最多到2^31 1) 【代码】 cpp class Solution { public: bool isPalindrome(int x) { int f = 1; string s; s = "" 阅读全文
posted @ 2019-11-04 09:45 AWCXV 阅读(98) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 【题解】 注意越界的处理就好 简单题 还有。。 正的 2^31不能由2^31取相反数得到,因为正的int最多到2^31 1 【代码】 阅读全文
posted @ 2019-11-03 23:56 AWCXV 阅读(125) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 【题解】 没什么说的。 就注意一点。 可以在 10+n%10的时候。 顺便判断有没有溢出。 (直接用longlong可真是机制。。) 【代码】 cpp class Solution { public: int reverse(int x) { long long t = x; int 阅读全文
posted @ 2019-11-03 23:24 AWCXV 阅读(104) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 【题解】 还想着模拟这个过程。然后发现只有行有用啊!... 那就建个rows大小的字符串数组存每行从左到右的字符就行啦。。 然后就是i从1变到n然后又变回1反复就好了。 最后把1..rows按顺序首尾连接在一起就行 【代码】 cpp class Solution { public: s 阅读全文
posted @ 2019-11-03 23:12 AWCXV 阅读(127) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 描述 【题解】 "一个讲得比较好的博客地址" ; 感觉manacher算法的大概思路就是利用回文串左右对称的性质。 利用之前算出来的以某个点为中心的回文串。而当前要枚举的串被包括在其中。 则可以用左半部分的结果来获取右边当前的串的结果。 O(N) 当然也可以枚举中间点在哪个地方然后O( 阅读全文
posted @ 2019-11-02 23:37 AWCXV 阅读(123) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 【题解】 假设在两个有序的序列中找第k小的数字。 那么我们先定位第一个序列中的第k/2个数字(不足则取最边上的那个数字)记下标为i1 然后定位第二个序列中的第k/2个数字(同样不足则取最边上的那个数字)记下标为i2 如果a[i1] 【代码】 阅读全文
posted @ 2019-11-01 21:22 AWCXV 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 描述 【题解】 尺取法 对于[l..r]这段 如果新加进来的s[r]有和之前的重复。 那么就不用重新开始了。 直接递增左区间。 让这段没有重复数字了再说。 然后再把s[r]加进去。 【代码】 cpp class Solution { public: int lengthOfLongestSubstr 阅读全文
posted @ 2019-10-31 22:30 AWCXV 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 描述 【题解】 用个map的话就是O(N)级别的了。 【代码】 cpp class Solution { public: unordered_map mymap; vector twoSum(vector& nums, int target) { int len = nums.size(); vec 阅读全文
posted @ 2019-10-31 22:06 AWCXV 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 描述 【题解】 模拟高精度的加法。 用x来记录前面的进位就好。 【代码】 阅读全文
posted @ 2019-10-31 21:51 AWCXV 阅读(130) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 223 下一页