<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Dylan_Java_NYC的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Dylan_Java_NYC</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Dylan_Java_NYC]]></copyright><item><title><![CDATA[从优快云将博客搬至博客园]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48615431</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48615431</guid><author>Dylan_Java_NYC</author><pubDate>Mon, 21 Sep 2015 01:36:23 +0800</pubDate><description><![CDATA[原因无他：优快云太卡！]]></description><category></category></item><item><title><![CDATA[LeetCode Implement strStr()]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48592829</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48592829</guid><author>Dylan_Java_NYC</author><pubDate>Sun, 20 Sep 2015 05:19:40 +0800</pubDate><description><![CDATA[原题链接在这里：https://leetcode.com/problems/implement-strstr/
原来Java里有这么个API, str.indexOf(subString). 这是API的用法：http://www.tutorialspoint.com/java/java_string_indexof.htm
AC Java:
public class Solution {]]></description><category></category></item><item><title><![CDATA[LeetCode ZigZag Conversion]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48584623</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48584623</guid><author>Dylan_Java_NYC</author><pubDate>Sun, 20 Sep 2015 00:31:04 +0800</pubDate><description><![CDATA[原题链接在这里：https://leetcode.com/problems/zigzag-conversion/
e.g. 若是给出0,1,2,3.....11. numRow = 4
0   6
1 5
7 11
2 4
8 10
3 9
发现第一行和最后一行 每两位之间差了interval = 2*(numRow-1). 中间行没两位之间脚踢差了interval - 2*i, ]]></description><category></category></item><item><title><![CDATA[LeetCode Length of Last Word]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48583345</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48583345</guid><author>Dylan_Java_NYC</author><pubDate>Sat, 19 Sep 2015 23:51:54 +0800</pubDate><description><![CDATA[原题链接在这里：https://leetcode.com/problems/length-of-last-word/
从最后一个字符开始数，最后一个字符是 '  ', 就一直向前移动指针直到出现第一个字符。
开始计数，然后继续扫面直到出现下一个 '  ', 返回计数结果即可。
Note:  1. while loop加 i--, 这里已经犯过很多次类似的错误了。
2. 在使用s.charA]]></description><category></category></item><item><title><![CDATA[LeetCode Count and Say]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48544137</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48544137</guid><author>Dylan_Java_NYC</author><pubDate>Fri, 18 Sep 2015 11:32:48 +0800</pubDate><description><![CDATA[原题链接在这里：https://leetcode.com/problems/count-and-say/
当前的读音用来做数列的下一个"1" 读成1个1，写成"11"用来作为下一个。
从i = 2开始一直到n作为外层loop, i是第 ith 个结果。
进入循环后，新生成count = 1, index = 1, 然后进入内层loop, 用index 从第二位走res, 现字符等同于前字符就]]></description><category></category></item><item><title><![CDATA[LeetCode Longest Common Prefix]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48542849</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48542849</guid><author>Dylan_Java_NYC</author><pubDate>Fri, 18 Sep 2015 10:28:45 +0800</pubDate><description><![CDATA[原题链接在这里：https://leetcode.com/problems/longest-common-prefix/
strs中的第一个字符串从i = 0 开始，取char, 取出char后，用来比较其他所有字符串，若是此时index i 已经等于其他字符串长度或者其他某个字符创相应位置上的char不同，说明已经走不下去了，就地返回res. 
若其他字符串的响应位置都有char, 且相同，]]></description><category></category></item><item><title><![CDATA[LeetCode Compare Version Numbers]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48542367</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48542367</guid><author>Dylan_Java_NYC</author><pubDate>Fri, 18 Sep 2015 10:01:56 +0800</pubDate><description><![CDATA[原题链接在这里：https://leetcode.com/problems/compare-version-numbers/
用string.split()方法把原有string 拆成 string 数组，但这里要注意 . 和 * 是不能直接用split(".") 或者split("*")拆开的，因为 . 可以代表任意char, * 可以代表任意字符串。所以要加 \\. 来避免individua]]></description><category></category></item><item><title><![CDATA[LeetCode Interleaving String]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48537641</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48537641</guid><author>Dylan_Java_NYC</author><pubDate>Fri, 18 Sep 2015 05:46:12 +0800</pubDate><description><![CDATA[原题链接在这里：https://leetcode.com/problems/interleaving-string/
这是一道DP题，用boolean数组dp维护历史数据，dp[i][j]表示长度为i的s1和长度为j的s2能否组成长度为 i+j 的s3.
递推式是若当前s3的最后一个char与s1的最后一个char相同，并且dp[i-1][j]为true, 那么dp[i][j]为true;
]]></description><category></category></item><item><title><![CDATA[LeetCode Distinct Subsequences]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48534871</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48534871</guid><author>Dylan_Java_NYC</author><pubDate>Fri, 18 Sep 2015 04:31:50 +0800</pubDate><description><![CDATA[原题链接在这里：https://leetcode.com/problems/distinct-subsequences/
这是一道DP. 简历二维数组dp, dp[i,j]表示s[0....i]有多少种方法可以减成t[0.......j].
更新方法是: 若s.charAt(i-1) == t.charAt(j-1), dp[i][j] = dp[i-1][j-1](用上最新的match, 之]]></description><category></category></item><item><title><![CDATA[LeetCode Longest Valid Parentheses]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48532667</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48532667</guid><author>Dylan_Java_NYC</author><pubDate>Thu, 17 Sep 2015 23:24:06 +0800</pubDate><description><![CDATA[原题链接在这里：https://leetcode.com/problems/longest-valid-parentheses/
和Largest Rectangle in Histogram都是往栈内存index. 
生成一个stack, 从头往后扫string, 遇到'(', 就把当前index存入到stack中。
当遇到 ')'时要看当前stack是后为空，若为空，更新新起点start]]></description><category></category></item><item><title><![CDATA[LeetCode Maximal Rectangle]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48531683</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48531683</guid><author>Dylan_Java_NYC</author><pubDate>Thu, 17 Sep 2015 22:55:18 +0800</pubDate><description><![CDATA[原题链接在这里：https://leetcode.com/problems/maximal-rectangle/
与Largest Rectangle in Histogram Largest Rectangle in Histogram Largest
 Rectangle in Histogram Largest Rectangle in Histogram相似
AC Java:
pu]]></description><category></category></item><item><title><![CDATA[LeetCode Largest Rectangle in Histogram]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48515203</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48515203</guid><author>Dylan_Java_NYC</author><pubDate>Thu, 17 Sep 2015 04:35:41 +0800</pubDate><description><![CDATA[原题链接在这里：https://leetcode.com/problems/largest-rectangle-in-histogram/
参考了这篇帖子：http://www.cnblogs.com/lichen782/p/leetcode_Largest_Rectangle_in_Histogram.html
里面讲的很清楚，生成了stack, 当遇到比stack 顶部更大array元素时]]></description><category></category></item><item><title><![CDATA[LeetCode Best Time to Buy and Sell Stock IV]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48492287</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48492287</guid><author>Dylan_Java_NYC</author><pubDate>Wed, 16 Sep 2015 12:42:17 +0800</pubDate><description><![CDATA[原题链接在这里：https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iv/
本题是Best Time to Buy and Sell Stock III的general情况。
但这里要注意若是k很大已经超过了prices.length的时候，若是按照DP的方法做会浪费时间以及空间。
此时可以直接参照Best Time t]]></description><category></category></item><item><title><![CDATA[LeetCode Best Time to Buy and Sell Stock III]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48492105</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48492105</guid><author>Dylan_Java_NYC</author><pubDate>Wed, 16 Sep 2015 12:29:18 +0800</pubDate><description><![CDATA[原题链接在这里：https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iii/
本题是Best Time to Buy and Sell Stock的进阶版。思路也很相似，仍旧是维护一个全局最优，一个局部最优。
这里最多可以进行k次交易，让后本题把k变成2即可。全局最优global是到达第i天可以最多进行j次交易的利润是多少]]></description><category></category></item><item><title><![CDATA[LeetCode Best Time to Buy and Sell Stock II]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48484149</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48484149</guid><author>Dylan_Java_NYC</author><pubDate>Wed, 16 Sep 2015 02:27:35 +0800</pubDate><description><![CDATA[原题链接在这里：https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/
是Best Time to Buy and Sell Stock的进阶版，但思路去不太相同。
这里可以进行无数次交易，当然不能比prices.length - 1还多，就是每次股票比前一天差价大于0都进行交易，把这些大于0的差价相加就是最后返回的结]]></description><category></category></item><item><title><![CDATA[LeetCode Best Time to Buy and Sell Stock]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48477491</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48477491</guid><author>Dylan_Java_NYC</author><pubDate>Tue, 15 Sep 2015 23:05:17 +0800</pubDate><description><![CDATA[原题链接在这里：https://leetcode.com/problems/best-time-to-buy-and-sell-stock/
与Maximum Subarray相似，都是全局最优与局部最优问题。
维护一个局部最优解，和一个全局最优解, 先更新局部最优解, 要么是原来的局部最优加上i天与i-1天得差价，要么是0(i天股价没有i-1天高), 然后维护全局最优，最后返回全局最优。]]></description><category></category></item><item><title><![CDATA[LeetCode Maximal Square]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48477041</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48477041</guid><author>Dylan_Java_NYC</author><pubDate>Tue, 15 Sep 2015 22:41:29 +0800</pubDate><description><![CDATA[原题链接在这里：https://leetcode.com/problems/maximal-square/
这是一道DP题，存储历史信息是到当前点能有的最大square, 用二维数组dp存储。
更新方式是若当前点为0，则不更新，若当前点为1，则取上dp[i-1][j], 左dp[i][j-1], 左上dp[i-1][j-1]的中的最小值，开根号加一，最后平方为dp[i][j].
初始第一行和]]></description><category></category></item><item><title><![CDATA[LeetCode Maximum Product Subarray]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48465687</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48465687</guid><author>Dylan_Java_NYC</author><pubDate>Tue, 15 Sep 2015 12:14:55 +0800</pubDate><description><![CDATA[原题链接在这里：https://leetcode.com/problems/maximum-product-subarray/
与Maximum Subarray类似。但出了要维护一个局部最大量外还需要同时多维护一个局部最小量。
e.g.[-2,3,-4], 若不维护局部最小量，i = 1时，局部最大是3，全局最大也是3，i=2时 局部最大变成-4，全局最大变成3，但实际全局最大应该是8. 这]]></description><category></category></item><item><title><![CDATA[LeetCode Maximum Subarray]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48465319</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48465319</guid><author>Dylan_Java_NYC</author><pubDate>Tue, 15 Sep 2015 11:48:57 +0800</pubDate><description><![CDATA[原题链接在这里：https://leetcode.com/problems/maximum-subarray/
本题借鉴了这篇帖子：http://blog.youkuaiyun.com/linhuanmars/article/details/21314059
采用的是DP解法，同时维护局部最优和全局最优，局部最优就是必须包含当前点的最优解，全局最优可以不包含当前点。
历史信息就是local[i-1] 和]]></description><category></category></item><item><title><![CDATA[LeetCode Decode Ways]]></title><link>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48462283</link><guid>https://blog.youkuaiyun.com/Dylan_Java_NYC/article/details/48462283</guid><author>Dylan_Java_NYC</author><pubDate>Tue, 15 Sep 2015 07:37:57 +0800</pubDate><description><![CDATA[原题链接在这里：https://leetcode.com/problems/decode-ways/
DP题，保存的历史信息是到历史点有多少种decode的方法，用长度为len+1的数组保存，更新方式是若当前位i 和前一位 i-1两个组合的数字不合法则decode方法并没有增加，仍是dp[i-1]; 若合法，则应更改为dp[i-2]+dp[i-1]. 跟走楼梯相似。
初始化为了方便把dp[0]]]></description><category></category></item></channel></rss>