DP
小白苦学编程
这个作者很懒,什么都没留下…
展开
-
LeetCode 5 longest-palindromic-substring题解
LeetCode longest-palindromic-substring题解 题目链接 飞鱼决定开始每天保底五题(except Hard) 粗爆动态规划 (fast than 25%) 思路 主要就是挖掘前提条件: 1、单个字符必然回文 2、两个字符当且仅当他们相同时回文 其次是关联: 如果区间[i, j]是回文,当且仅当[ i+1, j-1]是回文 and s[i] == s[j] 然后再...原创 2019-05-03 18:25:41 · 113 阅读 · 0 评论 -
LeetCode 3 longest-substring-without-repeating-characters题解
题目链接 Brute force 没有什么是暴力不能解决的问题。 循环就是了。 No codes Sliding window 滑窗真的生动形象 借助set或者map或者数组,我们有三种大同小异的滑窗策略: 思路都是基于一点:[i, j]如果有重复,假设j与k重复,那么,很显然[k, j+x]和[k-y, j+x](x、y是任意非负整数)的右端最长不重复子串是一致的。 借助set的模拟滑窗过程 ...原创 2019-05-04 13:10:13 · 98 阅读 · 0 评论 -
leetcode 10. Regular Expression Matching 题解
题目链接 关键点 如果pattern至少有两个字符,且第二个是 ' \* ',那么 · 第一个匹配,字符串string去头再匹配, · 匹配, 返回匹配 · 不匹配, 把头还回去,返回 pattern去头两个再匹配的结果; · 第一个不匹配,返回 pattern去头(头两个)再匹配的结果 如果pattern第二个不是 ' \* ' · 第一个匹配,两个字符串去头再匹配 ...原创 2019-05-06 17:55:15 · 136 阅读 · 0 评论 -
LeetCode 11. Container With Most Water题解
题目地址 Brute force 两层循环,遍历所以情况,找最大结果 public int maxArea(int[] height) { int ans = 0, temp = 0; for(int i = 0; i < height.length; i++) { for(int j = i + 1; j < height.length; j++...原创 2019-05-06 18:12:43 · 126 阅读 · 0 评论 -
LeetCode 15. 3Sum 题解
题目地址 思路主要就是先排序,然后用三个指针,i,j,k i指针从头开始扫描,注意去重处理, j指针从i+1开始,同时k从尾开始 里层循环当j k有交集的时候退出,这样保证不重复 注意一点,里层循环也要考虑去重问题,当更新了结果集后,j不能单纯自增,而要增加到不重复,否则最终结果会有重复 class Solution { public List<List<Integer>...原创 2019-05-06 19:34:30 · 92 阅读 · 0 评论