<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[foolman]]></title><description><![CDATA[The fool man who moves the code]]></description><link>https://blog.youkuaiyun.com/foolnote</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; foolnote]]></copyright><item><title><![CDATA[[LeetCode]164. Maximum Gap]]></title><link>https://blog.youkuaiyun.com/foolnote/article/details/50639677</link><guid>https://blog.youkuaiyun.com/foolnote/article/details/50639677</guid><author>foolnote</author><pubDate>Sat, 06 Feb 2016 00:18:43 +0800</pubDate><description><![CDATA[原题链接：https://leetcode.com/problems/maximum-gap/
这道题如果是O(nlgn)方法肯定很简单，排序后找最大gap就行了。但如果要求O(n)时间完成的话，难度就大大加大了。所以我们用桶排序的方法来做这道题。 有关桶排序的简介，大家可以参考维基-桶排序。我们来介绍一下桶排序的应用，桶排序就是将一定范围的值全部丢到同一个桶里。所以我们只要合理安排桶的个数，让]]></description><category></category></item><item><title><![CDATA[[LeetCode]163. Missing Ranges]]></title><link>https://blog.youkuaiyun.com/foolnote/article/details/50631738</link><guid>https://blog.youkuaiyun.com/foolnote/article/details/50631738</guid><author>foolnote</author><pubDate>Thu, 04 Feb 2016 00:56:37 +0800</pubDate><description><![CDATA[原题链接：https://leetcode.com/problems/missing-ranges/
这道题目是要你以字符串的形式归纳出缺失的数范围。题目给定一个数组，里面有各个数，然后给定一个lower bound和upper bound。然后把在这个范围内没有在数组中的值归纳出来。
这道题没有涉及到太复杂的算法，我们只要处理好边界值就可以了。我们可以设置一个指针p，从lower bound]]></description><category></category></item><item><title><![CDATA[[LeetCode]162. Find Peak Element]]></title><link>https://blog.youkuaiyun.com/foolnote/article/details/50631727</link><guid>https://blog.youkuaiyun.com/foolnote/article/details/50631727</guid><author>foolnote</author><pubDate>Thu, 04 Feb 2016 00:43:18 +0800</pubDate><description><![CDATA[原题链接：https://leetcode.com/problems/find-peak-element/
这道题目意思是要求你在数组中找出一个peak值，这个peak值是比左右邻居要大，并且我们假设左边界和右边界都是无穷小。O(n)的解法是我们挨个的访问数组中的每个元素，查看它是不是比左右邻居要大。但这道题我们可以用二分搜索来做，时间是O(lgn)。因为题目不难，在此也就不详述思路了，直接代码]]></description><category></category></item><item><title><![CDATA[[LeetCode]161. One Edit Distance]]></title><link>https://blog.youkuaiyun.com/foolnote/article/details/50627586</link><guid>https://blog.youkuaiyun.com/foolnote/article/details/50627586</guid><author>foolnote</author><pubDate>Wed, 03 Feb 2016 06:46:35 +0800</pubDate><description><![CDATA[原题链接:https://leetcode.com/problems/one-edit-distance/
这道题目及变种多次在各大公司的面经中出现过。我在面snapchat的时候也遇到过这道题目。题目是说我们要求给定2个输入字符串S和T，要求判断S和T是不是只有一个字符只差。这里One Edit Distance意思就是你改动其中一个字符串的1个字符，就会变成另一个字符串。这里的改动包括增加1]]></description><category></category></item><item><title><![CDATA[[LeetCode]160. Intersection of Two Linked Lists]]></title><link>https://blog.youkuaiyun.com/foolnote/article/details/50626200</link><guid>https://blog.youkuaiyun.com/foolnote/article/details/50626200</guid><author>foolnote</author><pubDate>Wed, 03 Feb 2016 00:09:26 +0800</pubDate><description><![CDATA[原题链接：https://leetcode.com/problems/contains-duplicate-iii/
这道题目是easy题，所以会有可能出现在电面里面。思路也很简单，设置2个指针分别指向2个链表，如果链表长度不相等，假设2个链表相差k个节点，则我们让长度长的那个链表对应的指针先走前进k个节点，然后两个指针一起走，直走到2个指针指向相同的节点为止。时间复杂度是O(n)
代码如下：]]></description><category></category></item><item><title><![CDATA[[LeetCode]159. Longest Substring with At Most Two Distinct Characters]]></title><link>https://blog.youkuaiyun.com/foolnote/article/details/50626196</link><guid>https://blog.youkuaiyun.com/foolnote/article/details/50626196</guid><author>foolnote</author><pubDate>Wed, 03 Feb 2016 00:06:01 +0800</pubDate><description><![CDATA[原题链接：https://leetcode.com/problems/longest-substring-with-at-most-two-distinct-characters/
这也是一道带锁题，已经解锁的朋友可以选择做一做。这道题其实就是经典的窗口移动题，感觉难度其实是Medium。题目的要求是对于输入的字符串，要求返回只包含两个字母的子串最长的长度。
解法就是我们维护一个窗口的2个指针]]></description><category></category></item><item><title><![CDATA[[LeetCode] 158. Read N Characters Given Read4 II - Call multiple times]]></title><link>https://blog.youkuaiyun.com/foolnote/article/details/50626162</link><guid>https://blog.youkuaiyun.com/foolnote/article/details/50626162</guid><author>foolnote</author><pubDate>Tue, 02 Feb 2016 23:49:22 +0800</pubDate><description><![CDATA[这道题是http://foolmancode.blogspot.com/2016/01/leetcode-157-read-n-characters-given.html的升级版，这里要求目标函数能够被多次调用。所以出现了一个情况，就是上次read4()读回来的字符还没完全被取完。我们要先去buffer里面取，取不到了后才再次调用read4()函数去读字符。
代码如下:
public clas]]></description><category></category></item><item><title><![CDATA[[LeetCode] 157. Read N Characters Given Read4]]></title><link>https://blog.youkuaiyun.com/foolnote/article/details/50621629</link><guid>https://blog.youkuaiyun.com/foolnote/article/details/50621629</guid><author>foolnote</author><pubDate>Tue, 02 Feb 2016 07:21:08 +0800</pubDate><description><![CDATA[原题链接：https://leetcode.com/problems/read-n-characters-given-read4/
这也是一道带锁题，题目的意思是给定一个函数read4(char[] buf) 的函数，每次可以最多读4个字节的字符，然后要求通过给定的函数来实现一个函数，能按照要求读出n个字符。
这道题目是http://foolmancode.blogspot.com/2016/]]></description><category></category></item><item><title><![CDATA[[Leetcode]156.Binary Tree Upside Down]]></title><link>https://blog.youkuaiyun.com/foolnote/article/details/50515152</link><guid>https://blog.youkuaiyun.com/foolnote/article/details/50515152</guid><author>foolnote</author><pubDate>Thu, 14 Jan 2016 09:56:10 +0800</pubDate><description><![CDATA[原题链接：https://leetcode.com/problems/binary-tree-upside-down/
这是一道带锁题，原题是说给定一个二叉树，二叉树的右子树要么是空的，要么是有一个兄弟节点的叶子子树（没有孩子）。题目要求讲这课二叉树上下翻转一下，并且使得二叉树的右节点变成左节点。


解：
这个树是一棵有特征的树，它的生长是沿着左子树方向的。所以我们只需定义好几个变量，]]></description><category></category></item><item><title><![CDATA[开篇]]></title><link>https://blog.youkuaiyun.com/foolnote/article/details/50515112</link><guid>https://blog.youkuaiyun.com/foolnote/article/details/50515112</guid><author>foolnote</author><pubDate>Thu, 14 Jan 2016 09:51:38 +0800</pubDate><description><![CDATA[写在前面：


前前后后刷题也有一年多了虽然拿到了Facebook实习，目前还在刷题进行中。感觉题目虽然都能知道怎么写，但目前在脑海里还没有组织成一个知识网络，所以想开篇博客，和大家讨论关于刷题的经验吧。本博客主要po我刷leetcode的个人的解答为主。有些答案是我自己想的，有些则是参考了网上的代码。在此我隆重推荐师兄的博客，Code ganker:
http://codeganker.]]></description><category></category></item></channel></rss>