Jekyll2018-04-09T02:43:11+00:00http:imkean.com/Kean’s Blog我藏起来的秘密Shell Regular Expression2016-08-31T00:00:00+00:002016-08-31T00:00:00+00:00http:imkean.com/shell-regular-expression<ul id="toc_of_keans_blog">
<li><a href="#正则表达式" id="toc_of_keans_blog-正则表达式">正则表达式</a></li>
<li><a href="#posix-方括号表达式" id="toc_of_keans_blog-posix-方括号表达式">POSIX 方括号表达式</a></li>
<li><a href="#bre" id="toc_of_keans_blog-bre">BRE</a></li>
<li><a href="#ere" id="toc_of_keans_blog-ere">ERE</a></li>
<li><a href="#正则表达式的扩展注意不是ere" id="toc_of_keans_blog-正则表达式的扩展注意不是ere">正则表达式的扩展(注意不是ERE)</a></li>
<li><a href="#程序与正则表达式" id="toc_of_keans_blog-程序与正则表达式">程序与正则表达式</a></li>
</ul>
<h1 id="shell里的正则表达式">Shell里的正则表达式</h1>
<p>在Unix系统的使用中经常会进行文本处理,不可变避免的会经常使用正则表达式,但在Unix里实际上有两种正则表达式——BRE(Basic Regular Expression)和ERE(Extended Regular Expression),这将是本文主要介绍的内容。</p>
<h2 id="正则表达式">正则表达式</h2>
<table>
<thead>
<tr>
<th>字符</th>
<th>BRE/ERE</th>
<th>模式含义</th>
</tr>
</thead>
<tbody>
<tr>
<td><code class="highlighter-rouge">\</code></td>
<td>Both</td>
<td>相当于转意符,用于取消后面字符的特殊意义。有时则表示后面字符具有特殊意义,如<code class="highlighter-rouge">\(...\)</code>与<code class="highlighter-rouge">\{...\}</code></td>
</tr>
<tr>
<td><code class="highlighter-rouge">.</code></td>
<td>Both</td>
<td>匹配任何单个字符,但NUL除外。独立程序也可以不匹配换行字符</td>
</tr>
<tr>
<td><code class="highlighter-rouge">*</code></td>
<td>Both</td>
<td>匹配之前出现的字符任意个(或没有),以BRE来说,<code class="highlighter-rouge">*</code>出现在第一个字符不具有任何意义</td>
</tr>
<tr>
<td><code class="highlighter-rouge">^</code></td>
<td>Both</td>
<td>在行首或字符串首,匹配紧接着的正则表达式。BRE:仅在正则表达式开头具有特殊含义;ERE:置于任何位置均有特殊含义</td>
</tr>
<tr>
<td><code class="highlighter-rouge">$</code></td>
<td>Both</td>
<td>与<code class="highlighter-rouge">^</code>类似,但是作用在行或字符串尾部</td>
</tr>
<tr>
<td><code class="highlighter-rouge">[...]</code></td>
<td>Both</td>
<td>方括号表达式,匹配方括号内任一字符</td>
</tr>
<tr>
<td><code class="highlighter-rouge">[^...]</code></td>
<td>Both</td>
<td>不匹配方括号内任一字符,</td>
</tr>
<tr>
<td><code class="highlighter-rouge">[a-z0-9A-Z]</code></td>
<td>Both</td>
<td>在方括号使用区间</td>
</tr>
<tr>
<td><code class="highlighter-rouge">\{n,m\}</code></td>
<td>BRE</td>
<td>区间表达式,匹配前面的字符n到m次</td>
</tr>
<tr>
<td><code class="highlighter-rouge">\{n\}</code></td>
<td>BRE</td>
<td>匹配前面的字符n次</td>
</tr>
<tr>
<td><code class="highlighter-rouge">\(...\)</code></td>
<td>BRE</td>
<td><code class="highlighter-rouge">...</code>所表示的模式存储在特殊的保留空间,一个正则表达式中,最可以有9个这样的模式,可以通过<code class="highlighter-rouge">\1</code>至<code class="highlighter-rouge">\9</code>来重复使用这些模式</td>
</tr>
<tr>
<td><code class="highlighter-rouge">\n</code></td>
<td>BRE</td>
<td>n 为1到9,需配合<code class="highlighter-rouge">\(...\)</code>使用</td>
</tr>
<tr>
<td><code class="highlighter-rouge">{n,m}</code></td>
<td>ERE</td>
<td>与BRE的 <code class="highlighter-rouge">\{n,m\}</code>功能相同,也有<code class="highlighter-rouge">{n}</code>的用法</td>
</tr>
<tr>
<td><code class="highlighter-rouge">+</code></td>
<td>ERE</td>
<td>匹配前面的表达式一个或多个,类似于<code class="highlighter-rouge">{1,+Inf}</code></td>
</tr>
<tr>
<td><code class="highlighter-rouge">?</code></td>
<td>ERE</td>
<td><code class="highlighter-rouge">{0,1}</code></td>
</tr>
<tr>
<td><code class="highlighter-rouge">|</code></td>
<td>ERE</td>
<td>相当于逻辑或,可匹配位于 <code class="highlighter-rouge">|</code>之前或者之后的正则表达式,优先级最低</td>
</tr>
<tr>
<td><code class="highlighter-rouge">()</code></td>
<td>ERE</td>
<td>分组,括号里的正则表达式当成一个整体,如<code class="highlighter-rouge">(why)+</code>将匹配一个或多个连续的why</td>
</tr>
</tbody>
</table>
<h2 id="posix-方括号表达式">POSIX 方括号表达式</h2>
<ul>
<li><strong>字符集</strong> 用<code class="highlighter-rouge">[:</code> 和<code class="highlighter-rouge">:]</code>将关键字括起来的为POSIX字符集</li>
<li><strong>排序符号</strong> 指将多个字符视为一个单位,使用<code class="highlighter-rouge">[.</code> 和<code class="highlighter-rouge">.]</code>括起来,其在系统使用的locale上各有其定义</li>
<li><strong>等价字符集</strong> 指出视为等值的一组字符,用<code class="highlighter-rouge">[=</code>和<code class="highlighter-rouge">=]</code>括起</li>
</ul>
<p><strong>这三种构造都必须必须在方括号括表达式中使用,如:<code class="highlighter-rouge">[[:alpha:]]</code>匹配任一个英文字母字符</strong></p>
<p><strong>POSIX字符集</strong></p>
<table>
<thead>
<tr>
<th>类别</th>
<th>匹配字符</th>
<th>类别</th>
<th>匹配字符</th>
</tr>
</thead>
<tbody>
<tr>
<td><code class="highlighter-rouge">[:alnum:]</code></td>
<td>字母与数字字符</td>
<td><code class="highlighter-rouge">[:lower:]</code></td>
<td>小写字母</td>
</tr>
<tr>
<td><code class="highlighter-rouge">[:alpha:]</code></td>
<td>字母字符</td>
<td><code class="highlighter-rouge">[:print:]</code></td>
<td>可打印字符</td>
</tr>
<tr>
<td><code class="highlighter-rouge">[:blank:]</code></td>
<td>空格(space)和定位(tab)字符</td>
<td><code class="highlighter-rouge">[:punct:]</code></td>
<td>标点字符</td>
</tr>
<tr>
<td><code class="highlighter-rouge">[:cntrl:]</code></td>
<td>控制字符</td>
<td><code class="highlighter-rouge">[:space:]</code></td>
<td>空白字符(whitespace)</td>
</tr>
<tr>
<td><code class="highlighter-rouge">[:digit:]</code></td>
<td>十进制数字字符</td>
<td><code class="highlighter-rouge">[:upper:]</code></td>
<td>大写字母</td>
</tr>
<tr>
<td><code class="highlighter-rouge">[:graph:]</code></td>
<td>非空格(nonspace)字符</td>
<td><code class="highlighter-rouge">[:xdigit:]</code></td>
<td>十六进制数字</td>
</tr>
</tbody>
</table>
<h2 id="bre">BRE</h2>
<ul>
<li><strong>在方括号表达式中所有其他的meta字符失去其特殊含义,故<code class="highlighter-rouge">[*\.]</code>将匹配于字面上的星号、反斜杠以及点号。对于<code class="highlighter-rouge">]-</code>加入集合,<code class="highlighter-rouge">]</code>只能放在最前面,<code class="highlighter-rouge">-</code>只能放在最前面或者最后面,如:<code class="highlighter-rouge">[]*.]</code>或<code class="highlighter-rouge">[]*.-]</code></strong></li>
<li>另外POSIX指出,NUL字符(数值零,即C语言的<code class="highlighter-rouge">'\0'</code>也即<code class="highlighter-rouge">NULL</code>)不需要匹配。另有个别工具程序不许使用<code class="highlighter-rouge">.</code>点号meta字符或者方括号表达式来进行换行字符的匹配</li>
<li><strong>后向引用:</strong>即<code class="highlighter-rouge">\(...\)</code>和 <code class="highlighter-rouge">\n</code>结合起来使用的功能</li>
<li><strong>BRE运算符优先级,由高到低</strong></li>
</ul>
<table>
<thead>
<tr>
<th>运算符</th>
<th>表示意义</th>
</tr>
</thead>
<tbody>
<tr>
<td><code class="highlighter-rouge">[..] [==] [::]</code></td>
<td>方括号表达式里的,字符排序、字符集和等值符号</td>
</tr>
<tr>
<td><code class="highlighter-rouge">\meta_char</code></td>
<td>转意的meta字符</td>
</tr>
<tr>
<td><code class="highlighter-rouge">[]</code></td>
<td>方括号表达式</td>
</tr>
<tr>
<td><code class="highlighter-rouge">\( \) \n</code></td>
<td>子表达式与后向引用</td>
</tr>
<tr>
<td><code class="highlighter-rouge">* \{ \}</code></td>
<td>前置单个字符重现的正则表达式</td>
</tr>
<tr>
<td>无符号(no symbol)</td>
<td>连续</td>
</tr>
<tr>
<td><code class="highlighter-rouge">^ $</code></td>
<td>锚点</td>
</tr>
</tbody>
</table>
<h2 id="ere">ERE</h2>
<ul>
<li>匹配单个字符时,ERE本质上与BRE一致。一个较有名的例外是在awk中,其<code class="highlighter-rouge">\</code>符号在方括号表达式内表示转意,因此要想匹配左方括号、连字符、右方括号或是反斜杠,应该使用<code class="highlighter-rouge">[\[\-\]\\]</code></li>
<li>ERE里没有后向引用</li>
<li><code class="highlighter-rouge">|</code> 交替,或,其优先级最低,如: <code class="highlighter-rouge">ab|cd|ef</code>将匹配<code class="highlighter-rouge">ab</code>或<code class="highlighter-rouge">cd</code>或<code class="highlighter-rouge">ef</code></li>
<li><strong>分组</strong> <code class="highlighter-rouge">()</code>提供分组功能,如<code class="highlighter-rouge">((read|write)[[:space:]]*)+</code>表示匹配多个连续的read和write其中可能有空格分隔</li>
<li>在ERE中<code class="highlighter-rouge">^</code>和<code class="highlighter-rouge">$</code>永远有效,如<code class="highlighter-rouge">ab^cd</code>,<code class="highlighter-rouge">ef$gh</code>虽然不会匹配到任何东西,但是表达式有效,使用本意需转意。</li>
<li><strong>ERE运算符优先级,由高到低</strong></li>
</ul>
<table>
<thead>
<tr>
<th>运算符</th>
<th>表示意义</th>
</tr>
</thead>
<tbody>
<tr>
<td><code class="highlighter-rouge">[..] [==] [::]</code></td>
<td>方括号表达式里的,字符排序、字符集和等值符号</td>
</tr>
<tr>
<td><code class="highlighter-rouge">\meta_char</code></td>
<td>转意的meta字符</td>
</tr>
<tr>
<td><code class="highlighter-rouge">[]</code></td>
<td>方括号表达式</td>
</tr>
<tr>
<td><code class="highlighter-rouge">\( \) \n</code></td>
<td>子表达式与后向引用</td>
</tr>
<tr>
<td><code class="highlighter-rouge">* + ? {} </code></td>
<td>前置单个字符重现的正则表达式</td>
</tr>
<tr>
<td>无符号(no symbol)</td>
<td>连续</td>
</tr>
<tr>
<td><code class="highlighter-rouge">^ $</code></td>
<td>锚点</td>
</tr>
<tr>
<td><code class="highlighter-rouge">|</code></td>
<td>交替,或</td>
</tr>
</tbody>
</table>
<h2 id="正则表达式的扩展注意不是ere">正则表达式的扩展(注意不是ERE)</h2>
<ul>
<li><code class="highlighter-rouge">\< \></code> 分别匹配单词开头与结尾</li>
<li><strong>额外的GNU正则表达式运算符</strong></li>
</ul>
<table>
<thead>
<tr>
<th>运算符</th>
<th>表示意义</th>
</tr>
</thead>
<tbody>
<tr>
<td><code class="highlighter-rouge">\w</code></td>
<td>所有单词组成字符,等同于 <code class="highlighter-rouge">[[:alnum:]]</code></td>
</tr>
<tr>
<td><code class="highlighter-rouge">\W</code></td>
<td>所有非单词组成字符,等同于 <code class="highlighter-rouge">[^[:alnum:]_]</code></td>
</tr>
<tr>
<td><code class="highlighter-rouge">\< \></code></td>
<td>匹配单词开头与结尾</td>
</tr>
<tr>
<td><code class="highlighter-rouge">\b</code></td>
<td>匹配单词开头或结尾的空字符串</td>
</tr>
<tr>
<td><code class="highlighter-rouge">\B</code></td>
<td>匹配两个单词之间的空字符串</td>
</tr>
<tr>
<td><code class="highlighter-rouge">\'\</code>` | 匹配emacs缓冲区的开始与结尾。GNU程序通常将它们视为<code class="highlighter-rouge">^ $</code>的同义</td>
<td> </td>
</tr>
</tbody>
</table>
<h2 id="程序与正则表达式">程序与正则表达式</h2>
<p><strong>Unix 程序及其对应的正则表达式类型</strong></p>
<table>
<thead>
<tr>
<th>类型</th>
<th>grep</th>
<th>sed</th>
<th>ed</th>
<th>ex/vi</th>
<th>more</th>
<th>egrep</th>
<th>awk</th>
<th>lex</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>BRE</strong></td>
<td>YES(默认)</td>
<td>YES</td>
<td>YES</td>
<td>YES</td>
<td>YES</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><strong>ERE</strong></td>
<td>grep -E</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>YES</td>
<td>YES</td>
<td>YES</td>
</tr>
<tr>
<td><code class="highlighter-rouge">\< \></code></td>
<td>YES</td>
<td>YES</td>
<td>YES</td>
<td>YES</td>
<td>YES</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>在Unix系统的使用中经常会进行文本处理,不可变避免的会经常使用正则表达式,但在Unix里实际上有两种正则表达式——BRE(Basic Regular Expression)和ERE(Extended Regular Expression)。Extending Python with C or C++ (1) | Hello, Wolrd!2016-07-21T00:00:00+00:002016-07-21T00:00:00+00:00http:imkean.com/Extending-Python-with-C-1-hello-world<ul id="toc_of_keans_blog">
<li><a href="#创建扩展代码" id="toc_of_keans_blog-创建扩展代码">创建扩展代码</a></li>
<li><a href="#使用模板来封装代码" id="toc_of_keans_blog-使用模板来封装代码">使用模板来封装代码</a></li>
<li><a href="#编译代码" id="toc_of_keans_blog-编译代码">编译代码</a></li>
</ul>
<p>Python的轮子众多,实际上其中大部分的轮子为了保证效率,都是使用C/C++实现的。创建Python扩展的步骤如下:</p>
<h2 id="创建扩展代码">创建扩展代码</h2>
<p>创建文件 <strong>HelloWorld.c</strong></p>
<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#include <stdio.h>
</span>
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
<span class="n">puts</span><span class="p">(</span><span class="s">"Hello, World!"</span><span class="p">);</span>
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>
<p>使用gcc编译运行看看是否有错误:</p>
<pre>
$ gcc HelloWorld.c -o hw
$ ./hw
Hello, World!
</pre>
<h2 id="使用模板来封装代码">使用模板来封装代码</h2>
<p><strong>1. 引入Python头文件</strong></p>
<p>这个文件一般在<code class="highlighter-rouge">/usr/local/include/python2.x</code>
在<em>HelloWorld.c</em>文件中第一行加入 <code class="highlighter-rouge">#include <Python.h></code></p>
<p><strong>2. 为模块的每一个函数增加一个型如 static PyObject* Module_func()的包装函数</strong></p>
<p>包装函数的主要作用就是与Python进行交互,一般就是从Python里取数据,将Python类型的数据转化成C类型的数据,然后交给C模块处理数据,然后再将结果转换成Python类型的数据返回。为main函数添加如下包装函数</p>
<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">static</span> <span class="n">PyObject</span> <span class="o">*</span> <span class="nf">HelloWorld_main</span><span class="p">(</span><span class="n">PyObject</span> <span class="o">*</span> <span class="n">self</span><span class="p">,</span> <span class="n">PyObject</span> <span class="o">*</span> <span class="n">args</span><span class="p">)</span> <span class="p">{</span>
<span class="n">main</span><span class="p">();</span>
<span class="k">return</span> <span class="p">(</span><span class="n">PyObject</span><span class="o">*</span><span class="p">)</span> <span class="n">Py_BuildValue</span><span class="p">(</span><span class="s">""</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
<p>因为这个Hello,World函数太简单,不需要传入参数,但是返回值总是需要的,直接返回NULL会产生一个<code class="highlighter-rouge">TypeError</code>,对于我们这里的情形需要返回一个None,即在Python里面表示没有返回值。<code class="highlighter-rouge">Py_BuildValue</code>将C的类型转换为Python的类型,用法如下:</p>
<pre>
Py_BuildValue("") None
Py_BuildValue("i", 123) 123
Py_BuildValue("iii", 123, 456, 789) (123, 456, 789)
Py_BuildValue("s", "hello") 'hello'
Py_BuildValue("ss", "hello", "world") ('hello', 'world')
Py_BuildValue("s#", "hello", 4) 'hell'
Py_BuildValue("()") ()
Py_BuildValue("(i)", 123) (123,)
Py_BuildValue("(ii)", 123, 456) (123, 456)
Py_BuildValue("(i,i)", 123, 456) (123, 456)
Py_BuildValue("[i,i]", 123, 456) [123, 456]
Py_BuildValue("{s:i,s:i}",
"abc", 123, "def", 456) {'abc': 123, 'def': 456}
Py_BuildValue("((ii)(ii)) (ii)",
1, 2, 3, 4, 5, 6) (((1, 2), (3, 4)), (5, 6))
</pre>
<p><strong>3. 在模块中增加一个PyMethodDef类型的静态数组</strong>
这个数组的作用是在Python解释器导入的时候使用
格式如下:每一个数组都包含一个函数的信息,最后一个数组放置两个NULL值,代表声明结束</p>
<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">static</span> <span class="n">PyMethodDef</span> <span class="n">methods</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span>
<span class="p">{</span><span class="s">"main"</span><span class="p">,</span> <span class="n">HelloWorld_main</span><span class="p">,</span> <span class="n">METH_VARARGS</span><span class="p">},</span>
<span class="p">{</span><span class="nb">NULL</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">},</span>
<span class="p">};</span>
</code></pre></div></div>
<p>METH_VARARGS代表参数以tuple的形式传入。如果我们需要使用PyArg_ParseTupleAndKeywords()
函数来分析关键字参数的话,这个标志常量应该写成: METH_VARARGS & METH_KEYWORDS,进行逻辑与运算。</p>
<p><strong>增加模块初始化函数void initMethod()</strong></p>
<p>最后的工作就是模块的初始化工作。这部分代码在模块被python导入时进行调用。
void initHelloWorld(){
Py_InitModule(“HelloWorld”,methods);
}</p>
<p>最终 <strong>HelloWorld.c</strong> 全部代码如下:</p>
<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#include <Python.h>
#include <stdio.h>
</span>
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
<span class="n">puts</span><span class="p">(</span><span class="s">"Hello, Wolrd!"</span><span class="p">);</span>
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">static</span> <span class="n">PyObject</span> <span class="o">*</span>
<span class="nf">HelloWorld_main</span><span class="p">(</span><span class="n">PyObject</span> <span class="o">*</span> <span class="n">self</span><span class="p">,</span> <span class="n">PyObject</span> <span class="o">*</span> <span class="n">args</span><span class="p">)</span> <span class="p">{</span>
<span class="n">main</span><span class="p">();</span>
<span class="k">return</span> <span class="p">(</span><span class="n">PyObject</span><span class="o">*</span><span class="p">)</span> <span class="n">Py_BuildValue</span><span class="p">(</span><span class="s">""</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">static</span> <span class="n">PyMethodDef</span> <span class="n">methods</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span>
<span class="p">{</span><span class="s">"main"</span><span class="p">,</span> <span class="n">HelloWorld_main</span><span class="p">,</span> <span class="n">METH_VARARGS</span><span class="p">},</span>
<span class="p">{</span><span class="nb">NULL</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">},</span>
<span class="p">};</span>
<span class="kt">void</span> <span class="n">initHelloWorld</span><span class="p">(){</span>
<span class="n">Py_InitModule</span><span class="p">(</span><span class="s">"HelloWorld"</span><span class="p">,</span><span class="n">methods</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
<h2 id="编译代码">编译代码</h2>
<p><strong>创建setup.py</strong></p>
<p>我们在安装python第三方包的时候,很多情况下会用到python setup.py install这个命令,
下面我们来了解一下setup.py文件的内容。</p>
<p>编译的最主要的内容由setup函数完成,你需要为每一个扩展创建一个Extension实例,在这里我们只有一个
扩展,所以只需要创建一个实例。
Extension(‘Extest’, sources=[‘Extest.c’]),第一个参数是扩展的名字,如果模块是包的一部分,还需要加”.”;
第二个参数是源代码文件列表
setup(‘Extest’, ext_modules=[…]),第一个参数表示要编译哪个东西,第二个参数列出要编译的Extension对象</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">#!/usr/bin/python</span>
<span class="kn">from</span> <span class="nn">distutils.core</span> <span class="kn">import</span> <span class="n">setup</span><span class="p">,</span> <span class="n">Extension</span>
<span class="n">MOD_NAME</span> <span class="o">=</span> <span class="s">"HelloWorld"</span>
<span class="n">setup</span><span class="p">(</span><span class="n">name</span> <span class="o">=</span> <span class="n">MOD_NAME</span><span class="p">,</span> <span class="n">ext_modules</span> <span class="o">=</span> <span class="p">[</span><span class="n">Extension</span><span class="p">(</span><span class="n">MOD_NAME</span><span class="p">,</span> <span class="n">sources</span> <span class="o">=</span> <span class="p">[</span><span class="s">"HelloWorld.c"</span><span class="p">])])</span>
</code></pre></div></div>
<p><strong>通过运行setup.py来编译和连接你的代码</strong></p>
<p>通过一下命令编译模块,并安装模块</p>
<pre>
$ python setup.py build
$ python setup.py install
</pre>
<p>然后在Python使用模块</p>
<pre>
Python 2.7.10 (default, Oct 23 2015, 19:19:21)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import HelloWorld
>>> HelloWorld.main()
Hello, Wolrd!
>>>
</pre>
<p><strong>或者不安装进行调试</strong></p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">#!/usr/bin/python</span>
<span class="kn">from</span> <span class="nn">ctypes</span> <span class="kn">import</span> <span class="o">*</span>
<span class="kn">import</span> <span class="nn">os</span>
<span class="c">#需要使用绝对路径</span>
<span class="n">module</span> <span class="o">=</span> <span class="n">cdll</span><span class="o">.</span><span class="n">LoadLibrary</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">getcwd</span><span class="p">()</span> <span class="o">+</span> <span class="s">'/HelloWorld.so'</span><span class="p">)</span>
<span class="n">module</span><span class="o">.</span><span class="n">main</span><span class="p">()</span>
</code></pre></div></div>Python最为当今最流行的脚本语言之一,一方面轮子众多,用起来非常酸爽;另一方面,它被称为胶水语言,可以和C,C++,Java等语言进行混合编程,本文简单介绍了如何使用C给Python写一个Hello,Word扩展。LeetCode Tags2016-07-16T00:00:00+00:002016-07-16T00:00:00+00:00http:imkean.com/leetcode/LeetCode-Tags<div class="tags-expo">
<br/>
<div class="tags-expo-list">
<a href="#array" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Array</a>
<a href="#hash-table" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Hash Table</a>
<a href="#linked-list" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Linked List</a>
<a href="#math" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Math</a>
<a href="#two-pointers" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Two Pointers</a>
<a href="#string" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
String</a>
<a href="#dynamic-programming" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Dynamic Programming</a>
<a href="#backtracking" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Backtracking</a>
<a href="#divide-and-conquer" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Divide and Conquer</a>
<a href="#binary-search" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Binary Search</a>
<a href="#stack" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Stack</a>
<a href="#heap" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Heap</a>
<a href="#greedy" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Greedy</a>
<a href="#sort" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Sort</a>
<a href="#graph" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Graph</a>
<a href="#depth-first-search" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Depth First Search</a>
<a href="#breadth-first-search" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Breadth First Search</a>
<a href="#bit-manipulation" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Bit Manipulation</a>
<a href="#tree" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Tree</a>
<a href="#union-find" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Union Find</a>
<a href="#design" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Design</a>
<a href="#topological-sort" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Topological Sort</a>
<a href="#trie" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Trie</a>
<a href="#binary-search-tree" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Binary Search Tree</a>
<a href="#brainteaser" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Brainteaser</a>
<a href="#segment-tree" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Segment Tree</a>
<a href="#binary-index-tree" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Binary Index Tree</a>
<a href="#memoization" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Memoization</a>
<a href="#binary-indexed-tree" class="tags-label">
<span class="glyphicon glyphicon-tag" style=""></span>
Binary Indexed Tree</a>
</div>
<hr/>
<div class="tags-section">
<h3 id="array">Array</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/1-two-sum/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
1. Two Sum
</a>
<span class="cate-post-date">27 May 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/11-container-with-most-water/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
11. Container with Most Water
</a>
<span class="cate-post-date">23 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/4-median-of-two-sorted-arrays/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
4. Median of Two Sorted Arrays
</a>
<span class="cate-post-date">24 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/15-3sum/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
15. 3Sum
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/16-3sum-closest/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
16. 3Sum Closest
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/18-4sum/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
18. 4Sum
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/26-remove-duplicates-from-sorted-array/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
26. Remove Duplicates from Sorted Array
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/27-remove-element/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
27. Remove Element
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/31-next-permutation/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
31. Next Permutation
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/33-search-in-rotated-sorted-array/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
33. Search in Rotated Sorted Array
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/34-search-for-a-range/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
34. Search for A Range
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/35-search-insert-position/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
35. Search Insert Position
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/39-combination-sum/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
39. Combination Sum
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/40-combination-sum-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
40. Combination Sum II
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/41-first-missing-positive/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
41. First Missing Positive
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/42-trapping-rain-water/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
42. Trapping Rain Water
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/45-jump-game-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
45. Jump Game II
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/48-rotate-image/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
48. Rotate Image
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/53-maximum-subarray/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
53. Maximum Subarray
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/54-spiral-matrix/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
54. Spiral Matrix
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/55-jump-game/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
55. Jump Game
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/56-merge-intervals/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
56. Merge Intervals
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/57-insert-interval/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
57. Insert Interval
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/59-spiral-matrix-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
59. Spiral Matrix II
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/62-unique-paths/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
62. Unique Paths
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/63-unique-paths-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
63. Unique Paths II
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/64-minimum-path-sum/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
64. Minimum Path Sum
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/66-plus-one/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
66. Plus One
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/73-set-matrix-zeroes/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
73. Set Matrix Zeroes
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/74-search-a-2d-matrix/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
74. Search A 2D Matrix
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/75-sort-colors/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
75. Sort Colors
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/78-subsets/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
78. Subsets
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/79-word-search/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
79. Word Search
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/80-remove-duplicates-from-sorted-array-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
80. Remove Duplicates from Sorted Array II
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/81-search-in-rotated-sorted-array-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
81. Search in Rotated Sorted Array II
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/84-largest-rectangle-in-histogram/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
84. Largest Rectangle in Histogram
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/85-maximal-rectangle/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
85. Maximal Rectangle
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/88-merge-sorted-array/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
88. Merge Sorted Array
</a>
<span class="cate-post-date">07 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/90-subsets-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
90. Subsets II
</a>
<span class="cate-post-date">07 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/105-construct-binary-tree-from-preorder-and-inorder-traversal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
105. Construct Binary Tree from Preorder and Inorder Traversal
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/106-construct-binary-tree-from-inorder-and-postorder-traversal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
106. Construct Binary Tree from Inorder and Postorder traversal
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/118-pascals-triangle/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
118. Pascal's Triangle
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/119-pascals-triangle-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
119. Pascal's Triangle II
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/120-triangle/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
120. Triangle
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/121-best-time-to-buy-and-sell-stock/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
121. Best Time to Buy and Sell Stock
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/122-best-time-to-buy-and-sell-stock-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
122. Best Time to Buy and Sell Stock II
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/123-best-time-to-buy-and-sell-stock-iii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
123. Best Time to Buy and Sell Stock III
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/126-word-ladder-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
126. Word Ladder II
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/128-longest-consecutive-sequence/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
128. Longest Consecutive Sequence
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/152-maximum-product-subarray/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
152. Maximum Product Subarray
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/153-find-minimum-in-rotated-sorted-array/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
153. Find Minimum in Rotated Sorted Array
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/154-find-minimum-in-rotated-sorted-array-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
154. Find Minimum in Rotated Sorted Array II
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/162-find-peak-element/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
162. Find Peek Element
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/169-majority-element/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
169. Majority Element
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/189-rotate-array/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
189. Rotate Array
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/209-minimum-size-subarray-sum/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
209. Minimum Size Subarray Sum
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/216-combination-sum-iii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
216. Combination Sum III
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/217-contains-duplicate/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
217. Contains Duplicate
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/219-contains-duplicate-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
219. Contains Duplicate II
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/238-product-of-array-except-self/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
238. Product of Array Except Self
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/268-missing-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
268. Missing Number
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/283-move-zeroes/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
283. Move Zeroes
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/287-find-the-duplicate-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
287. Find the Duplicate Number
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/289-game-of-life/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
289. Game of Life
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/334-increasing-triplet-subsequence/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
334. Increasing Triplet Subsequence
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
</ul>
<h3 id="hash-table">Hash Table</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/1-two-sum/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
1. Two Sum
</a>
<span class="cate-post-date">27 May 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/3-longest-substring-without-repeating-characters/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
3. Longest Substring Without Repeating Characters
</a>
<span class="cate-post-date">22 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/18-4sum/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
18. 4Sum
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/37-sudoku-solver/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
37. Sudoku Solver
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/30-substring-with-concatenation-of-all-words/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
30. Substring with Concatenation of All Words
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/36-valid-sudoku/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
36. Valid Sudoku
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/49-anagrams/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
49. Group Anagrams
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/51-n-queens/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
51. N-Queens
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/52-n-queens-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
52. N-Queens
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/76-minimum-window-substring/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
76. Minimum Window Substring
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/85-maximal-rectangle/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
85. Maximal Rectangle
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/94-binary-tree-inorder-traversal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
94. Binary Tree Inorder Traversal
</a>
<span class="cate-post-date">07 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/136-single-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
136. Single Number
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/138-copy-list-with-random-pointer/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
138. Copy List with Random Pointer
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/149-max-points-on-a-line/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
149. Max Points on A Line
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/166-fraction-to-recurring-decimal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
166. Fraction to Recurring Decimal
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/187-repeated-dna-Sequences/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
187. Repeated DNA Sequences
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/202-happy-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
202. Happy Number
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/204-count-primes/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
204. Count Primes
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/205-isomorphic-strings/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
205. Isomorphic Strings
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/217-contains-duplicate/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
217. Contains Duplicate
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/219-contains-duplicate-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
219. Contains Duplicate II
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/242-valid-anagram/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
242. Valid Anagram
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/274-h-index/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
274. H-Index
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/290-word-pattern/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
290. Word Pattern
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/299-bulls-and-cows/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
299. Bulls and Cows
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/347-top-k-frequent-elements/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
347. Top K Frequent Elements
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/349-intersection-of-two-arrays/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
349. Intersection of Two Arrays
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/350-intersection-of-two-arrays-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
350. Intersection of Two Arrays II
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
</ul>
<h3 id="linked-list">Linked List</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/2-add-two-numbers/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
2. Add Two Numbers
</a>
<span class="cate-post-date">17 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/19-remove-nth-node-from-end-of-list/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
19. Remove Nth Node from End of List
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/21-merge-two-sorted-lists/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
21. Merge Two Sorted Lists
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/24-swap-nodes-in-pairs/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
24. Swap Nodes in Pairs
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/23-merge-k-sorted-lists/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
23. Merge K Sorted Lists
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/25-reverse-nodes-in-k-group/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
25. Reverse Nodes in k-Group
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/61-rotate-list/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
61. Rotate List
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/82-remove-duplicates-from-sorted-list-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
82. Remove Duplicates from Sorted List II
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/86-partition-list/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
86. Partition List
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/92-reverse-linked-list-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
92. Reverse Linked List II
</a>
<span class="cate-post-date">07 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/109-convert-sorted-list-to-binary-search-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
109. Convert Sorted List to Binary Search Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/138-copy-list-with-random-pointer/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
138. Copy List with Random Pointer
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/141-Linked-List-Cycle/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
141. Linked List Cycle
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/142-linked-list-cycle-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
142. Linked List Cycle II
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/143-reorder-list/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
143. Reorder List
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/147-insertion-sort-list/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
147. Insertion Sort List
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/148-sort-list/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
148. Sort List
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/160-intersection-of-two-linked-lists/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
160. Intersection of Two Linked Lists
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/203-remove-linked-list-elements/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
203. Remove Linked List Elements
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/206-reverse-linked-list/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
206. Reverse Linked List
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/234-palindrome-linked-list/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
234. Palindrome Linked List
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/237-delete-node-in-a-linked-list/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
237. Delete Node in a Linked List
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/328-odd-even-linked-list/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
328. Odd Even Linked List
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
</ul>
<h3 id="math">Math</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/2-add-two-numbers/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
2. Add Two Numbers
</a>
<span class="cate-post-date">17 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/13-roman-to-integer/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
13. Roman to Integer
</a>
<span class="cate-post-date">23 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/7-reverse-integer/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
7. Reverse Integer
</a>
<span class="cate-post-date">23 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/8-string-to-integer-atoi/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
8. String to Integer (atoi)
</a>
<span class="cate-post-date">23 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/9-palindrome-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
9. Palindrome Number
</a>
<span class="cate-post-date">23 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/12-integer-to-roman/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
12. Integer to Roman
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/29-divide-two-integers/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
29. Divide Two Integers
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/31-next-permutation/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
31. Next Permutation
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/43-multiply-strings/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
43. Multiply Strings
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/50-powx-n/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
50. Pow(x, n)
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/60-permutation-sequence/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
60. Permutation Sequence
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/65-valid-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
65. Valid Number
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/66-plus-one/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
66. Plus One
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/67-add-binary/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
67. Add Binary
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/69-sqrtx/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
69. Sqrt(x)
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/149-max-points-on-a-line/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
149. Max Points on A Line
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/166-fraction-to-recurring-decimal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
166. Fraction to Recurring Decimal
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/168-excel-sheet-column-title/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
168. Excel Sheet Column Title
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/171-excel-sheet-column-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
171. Excel Sheet Column Number
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/172-factorial-trailing-zeroes/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
172. Factorial Trailing Zeroes
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/202-happy-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
202. Happy Number
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/204-count-primes/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
204. Count Primes
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/223-rectangle-area/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
223. Rectangle Area
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/224-basic-calculator/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
224. Basic Calculator
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/231-power-of-two/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
231. Power of Two
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/258-add-digits/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
258. Add Digits
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/263-ugly-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
263. Ugly Number
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/264-ugly-number-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
264. Ugly Number II
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/268-missing-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
268. Missing Number
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/279-perfect-squares/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
279. Perfect Squares
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/306-additive-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
306. Additive Number
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/313-super-ugly-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
313. Super Ugly Number
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/319-bulb-switcher/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
319. Bulb Switcher
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/233-number-of-digit-one/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
233. Number of Digit One
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/326-power-of-three/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
326. Power of Three
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/342-power-of-four/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
342. Power of Four
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/343-integer-break/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
343. Integer Break
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
</ul>
<h3 id="two-pointers">Two Pointers</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/3-longest-substring-without-repeating-characters/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
3. Longest Substring Without Repeating Characters
</a>
<span class="cate-post-date">22 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/11-container-with-most-water/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
11. Container with Most Water
</a>
<span class="cate-post-date">23 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/15-3sum/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
15. 3Sum
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/16-3sum-closest/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
16. 3Sum Closest
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/18-4sum/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
18. 4Sum
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/19-remove-nth-node-from-end-of-list/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
19. Remove Nth Node from End of List
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/26-remove-duplicates-from-sorted-array/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
26. Remove Duplicates from Sorted Array
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/27-remove-element/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
27. Remove Element
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/28-implement-strstr/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
28. Implement strStr()
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/30-substring-with-concatenation-of-all-words/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
30. Substring with Concatenation of All Words
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/42-trapping-rain-water/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
42. Trapping Rain Water
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/61-rotate-list/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
61. Rotate List
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/75-sort-colors/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
75. Sort Colors
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/76-minimum-window-substring/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
76. Minimum Window Substring
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/80-remove-duplicates-from-sorted-array-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
80. Remove Duplicates from Sorted Array II
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/86-partition-list/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
86. Partition List
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/88-merge-sorted-array/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
88. Merge Sorted Array
</a>
<span class="cate-post-date">07 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/125-valid-palindrome/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
125. Valid Palindrome
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/141-Linked-List-Cycle/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
141. Linked List Cycle
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/142-linked-list-cycle-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
142. Linked List Cycle II
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/209-minimum-size-subarray-sum/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
209. Minimum Size Subarray Sum
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/234-palindrome-linked-list/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
234. Palindrome Linked List
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/283-move-zeroes/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
283. Move Zeroes
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/287-find-the-duplicate-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
287. Find the Duplicate Number
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/344-reverse-string/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
344. Reverse String
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/345-reverse-vowels-of-a-string/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
345. Reverse Vowels of a String
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/349-intersection-of-two-arrays/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
349. Intersection of Two Arrays
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/350-intersection-of-two-arrays-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
350. Intersection of Two Arrays II
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
</ul>
<h3 id="string">String</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/3-longest-substring-without-repeating-characters/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
3. Longest Substring Without Repeating Characters
</a>
<span class="cate-post-date">22 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/10-regular-expression-matching/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
10. Regular Expression Matching
</a>
<span class="cate-post-date">23 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/13-roman-to-integer/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
13. Roman to Integer
</a>
<span class="cate-post-date">23 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/14-longest-common-prefix/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
14. Longest Common Prefix
</a>
<span class="cate-post-date">23 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/5-longest-palindromic-substring/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
5. Longest Palindromic Substring
</a>
<span class="cate-post-date">23 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/6-zigzag-conversion/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
6. ZigZag Conversion
</a>
<span class="cate-post-date">23 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/8-string-to-integer-atoi/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
8. String to Integer (atoi)
</a>
<span class="cate-post-date">23 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/12-integer-to-roman/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
12. Integer to Roman
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/17-letter-combinations-of-a-phone-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
17. Letter Combinations of A Phone Number
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/20-valid-parentheses/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
20. Valid Parentheses
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/28-implement-strstr/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
28. Implement strStr()
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/32-longest-valid-parentheses/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
32. Longest Valid Parentheses
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/22-generate-parentheses/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
22. Generate Parentheses
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/30-substring-with-concatenation-of-all-words/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
30. Substring with Concatenation of All Words
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/38-count-and-say/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
38. Count and Say
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/43-multiply-strings/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
43. Multiply Strings
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/44-wildcard-matching/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
44. Wildcard Matching
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/49-anagrams/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
49. Group Anagrams
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/58-length-of-last-word/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
58. Length of Last Word
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/65-valid-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
65. Valid Number
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/67-add-binary/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
67. Add Binary
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/68-text-justification/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
68. Text Justification
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/71-simplify-path/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
71. Simplify Path
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/72-edit-distance/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
72. Edit Distance
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/76-minimum-window-substring/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
76. Minimum Window Substring
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/87-scramble-string/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
87. Scramble String
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/91-decode-ways/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
91. Decode Ways
</a>
<span class="cate-post-date">07 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/93-restore-ip-addresses/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
93. Restore IP Addresses
</a>
<span class="cate-post-date">07 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/115-distinct-subsequences/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
115. Distinct Subsequences
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/125-valid-palindrome/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
125. Valid Palindrome
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/97-interleaving-string/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
97. Interleaving String
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/126-word-ladder-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
126. Word Ladder II
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/127-word-ladder/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
127. Word Ladder
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/139-word-break/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
139. Word Break
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/140-word-break-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
140. Word Break II
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/151-reverse-words-in-a-string/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
151. Reverse Words in A String
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/165-compare-version-numbers/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
165. Compare Version Numbers
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/214-shortest-palindrome/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
214. Shortest Palindrome
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/227-basic-calculator-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
227. Basic Calculator II
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/306-additive-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
306. Additive Number
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/344-reverse-string/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
344. Reverse String
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/345-reverse-vowels-of-a-string/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
345. Reverse Vowels of a String
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
</ul>
<h3 id="dynamic-programming">Dynamic Programming</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/10-regular-expression-matching/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
10. Regular Expression Matching
</a>
<span class="cate-post-date">23 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/32-longest-valid-parentheses/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
32. Longest Valid Parentheses
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/44-wildcard-matching/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
44. Wildcard Matching
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/53-maximum-subarray/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
53. Maximum Subarray
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/62-unique-paths/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
62. Unique Paths
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/63-unique-paths-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
63. Unique Paths II
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/64-minimum-path-sum/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
64. Minimum Path Sum
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/70-climbing-stairs/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
70. Climbing Stairs
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/72-edit-distance/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
72. Edit Distance
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/85-maximal-rectangle/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
85. Maximal Rectangle
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/87-scramble-string/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
87. Scramble String
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/91-decode-ways/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
91. Decode Ways
</a>
<span class="cate-post-date">07 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/95-unique-binary-search-trees-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
95. Unique Binary Search Tree II
</a>
<span class="cate-post-date">07 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/115-distinct-subsequences/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
115. Distinct Subsequences
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/120-triangle/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
120. Triangle
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/121-best-time-to-buy-and-sell-stock/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
121. Best Time to Buy and Sell Stock
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/123-best-time-to-buy-and-sell-stock-iii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
123. Best Time to Buy and Sell Stock III
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/96-unique-binary-search-trees/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
96. Unique Binary Search Trees
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/97-interleaving-string/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
97. Interleaving String
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/132-palindrome-partitioning-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
132. Palindrome Partitioning II
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/139-word-break/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
139. Word Break
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/140-word-break-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
140. Word Break II
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/152-maximum-product-subarray/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
152. Maximum Product Subarray
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/188-best-time-to-buy-and-sell-stock-iv/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
188. Best Time to Buy and Sell Stock IV
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/198-house-robber/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
198. House Robber
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/213-house-robber-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
213. House Robber II
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/221-maximal-square/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
221. Maximal Square
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/264-ugly-number-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
264. Ugly Number II
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/279-perfect-squares/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
279. Perfect Squares
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/300-longest-increasing-subsequence/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
300. Longest Increasing Subsequence
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/303-range-sum-query-immutable/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
303. Range Sum Query Immutable
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/304-range-sum-query-2d-immutable/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
304. Range Sum Query 2D - Immutable
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/306-additive-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
306. Additive Number
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/309-best-time-to-buy-and-sell-stock-with-cooldown/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
309. Best Time to Buy and Sell Stock with Cooldown
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/312-burst-balloons/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
312. Burst Balloons
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/321-create-maximum-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
321. Create Maximum Number
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/322-coin-change/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
322. Coin Change
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/338-counting-bits/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
338. Counting Bits
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/343-integer-break/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
343. Integer Break
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
</ul>
<h3 id="backtracking">Backtracking</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/10-regular-expression-matching/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
10. Regular Expression Matching
</a>
<span class="cate-post-date">23 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/17-letter-combinations-of-a-phone-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
17. Letter Combinations of A Phone Number
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/37-sudoku-solver/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
37. Sudoku Solver
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/22-generate-parentheses/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
22. Generate Parentheses
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/39-combination-sum/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
39. Combination Sum
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/40-combination-sum-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
40. Combination Sum II
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/44-wildcard-matching/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
44. Wildcard Matching
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/46-permutations/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
46. Permutations
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/47-permutations-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
47. Permutations II
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/51-n-queens/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
51. N-Queens
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/52-n-queens-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
52. N-Queens
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/60-permutation-sequence/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
60. Permutation Sequence
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/77-combinations/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
77. Combinations
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/78-subsets/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
78. Subsets
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/79-word-search/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
79. Word Search
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/89-gray-code/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
89. Gray Code
</a>
<span class="cate-post-date">07 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/90-subsets-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
90. Subsets II
</a>
<span class="cate-post-date">07 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/93-restore-ip-addresses/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
93. Restore IP Addresses
</a>
<span class="cate-post-date">07 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/126-word-ladder-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
126. Word Ladder II
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/131-palindrome-partitioning/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
131. Palindrome Partition
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/140-word-break-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
140. Word Break II
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/211-add-and-search-word-data-structure-design/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
211. Add and Search Word - Data structure design
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/216-combination-sum-iii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
216. Combination Sum III
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
</ul>
<h3 id="divide-and-conquer">Divide and Conquer</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/4-median-of-two-sorted-arrays/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
4. Median of Two Sorted Arrays
</a>
<span class="cate-post-date">24 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/23-merge-k-sorted-lists/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
23. Merge K Sorted Lists
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/53-maximum-subarray/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
53. Maximum Subarray
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/169-majority-element/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
169. Majority Element
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/215-kth-largest-element-in-an-array/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
215. Kth Largest Element in an Array
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/240-search-a-2d-matrix-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
240. Search a 2D Matrix II
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/241-different-ways-to-add-parentheses/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
241. Different Ways to Add Parentheses
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/282-expression-add-operators/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
282. Expression Add Operators
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/312-burst-balloons/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
312. Burst Balloons
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/218-the-skyline-problem/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
218. The Sky Line Problem
</a>
<span class="cate-post-date">25 Jul 2016</span>
</li>
</ul>
<h3 id="binary-search">Binary Search</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/4-median-of-two-sorted-arrays/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
4. Median of Two Sorted Arrays
</a>
<span class="cate-post-date">24 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/29-divide-two-integers/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
29. Divide Two Integers
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/33-search-in-rotated-sorted-array/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
33. Search in Rotated Sorted Array
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/34-search-for-a-range/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
34. Search for A Range
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/35-search-insert-position/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
35. Search Insert Position
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/50-powx-n/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
50. Pow(x, n)
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/69-sqrtx/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
69. Sqrt(x)
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/74-search-a-2d-matrix/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
74. Search A 2D Matrix
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/81-search-in-rotated-sorted-array-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
81. Search in Rotated Sorted Array II
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/153-find-minimum-in-rotated-sorted-array/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
153. Find Minimum in Rotated Sorted Array
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/154-find-minimum-in-rotated-sorted-array-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
154. Find Minimum in Rotated Sorted Array II
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/162-find-peak-element/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
162. Find Peek Element
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/209-minimum-size-subarray-sum/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
209. Minimum Size Subarray Sum
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/222-count-complete-tree-nodes/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
222. Count Complete Tree Nodes
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/240-search-a-2d-matrix-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
240. Search a 2D Matrix II
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/275-h-index-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
275. H-Index II
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/278-first-bad-version/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
278. First Bad Version
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/287-find-the-duplicate-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
287. Find the Duplicate Number
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/300-longest-increasing-subsequence/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
300. Longest Increasing Subsequence
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/349-intersection-of-two-arrays/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
349. Intersection of Two Arrays
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/350-intersection-of-two-arrays-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
350. Intersection of Two Arrays II
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
</ul>
<h3 id="stack">Stack</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/20-valid-parentheses/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
20. Valid Parentheses
</a>
<span class="cate-post-date">25 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/42-trapping-rain-water/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
42. Trapping Rain Water
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/71-simplify-path/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
71. Simplify Path
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/84-largest-rectangle-in-histogram/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
84. Largest Rectangle in Histogram
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/85-maximal-rectangle/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
85. Maximal Rectangle
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/94-binary-tree-inorder-traversal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
94. Binary Tree Inorder Traversal
</a>
<span class="cate-post-date">07 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/103-binary-tree-zigzag-level-order-traversal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
103. Binary Tree Zigzag Level Order Traversal
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/144-binary-tree-preorder-traversal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
144. Binary Tree Preorder Traversal
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/145-binary-tree-postorder-traversal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
145. Binary Tree Postorder Traversal
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/150-evaluate-reverse-polish-notation/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
150. Evaluate Reverse Polish Notation
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/155-min-stack/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
155. Min Stack
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/173-binary-search-tree-iterator/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
173. Binary Search Tree Iterator
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/224-basic-calculator/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
224. Basic Calculator
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/225-implement-stack-using-queues/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
225. Implement Stack Using Queues
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/232-implement-queue-using-stacks/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
232. Implement Queue using Stacks
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/316-remove-duplicate-letters/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
316. Remove Duplicate Letters
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/331-verify-preorder-serialization-of-a-binary-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
331. Verify Preorder Serialization of a Binary Tree
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/341-flatten-nested-list-iterator/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
341. Flatten Nested List Iterator
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
</ul>
<h3 id="heap">Heap</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/23-merge-k-sorted-lists/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
23. Merge K Sorted Lists
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/215-kth-largest-element-in-an-array/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
215. Kth Largest Element in an Array
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/264-ugly-number-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
264. Ugly Number II
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/295-find-median-from-data-stream/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
295. Find Median from Data Stream
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/313-super-ugly-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
313. Super Ugly Number
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/347-top-k-frequent-elements/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
347. Top K Frequent Elements
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/218-the-skyline-problem/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
218. The Sky Line Problem
</a>
<span class="cate-post-date">25 Jul 2016</span>
</li>
</ul>
<h3 id="greedy">Greedy</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/44-wildcard-matching/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
44. Wildcard Matching
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/45-jump-game-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
45. Jump Game II
</a>
<span class="cate-post-date">26 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/55-jump-game/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
55. Jump Game
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/122-best-time-to-buy-and-sell-stock-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
122. Best Time to Buy and Sell Stock II
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/134-gas-station/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
134. Gas Station
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/135-candy/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
135. Candy
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/316-remove-duplicate-letters/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
316. Remove Duplicate Letters
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/321-create-maximum-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
321. Create Maximum Number
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/330-patching-array/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
330. Patching Array
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
</ul>
<h3 id="sort">Sort</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/56-merge-intervals/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
56. Merge Intervals
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/57-insert-interval/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
57. Insert Interval
</a>
<span class="cate-post-date">27 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/75-sort-colors/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
75. Sort Colors
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/147-insertion-sort-list/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
147. Insertion Sort List
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/148-sort-list/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
148. Sort List
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/164-maximum-gap/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
164. Maximum Gap
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/179-largest-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
179. Largest Number
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/242-valid-anagram/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
242. Valid Anagram
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/274-h-index/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
274. H-Index
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/324-wiggle-sort-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
324. Wiggle Sort II
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/349-intersection-of-two-arrays/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
349. Intersection of Two Arrays
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/350-intersection-of-two-arrays-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
350. Intersection of Two Arrays II
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
</ul>
<h3 id="graph">Graph</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/133-clone-graph/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
133. Clone Graph
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/207-course-schedule/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
207. Course Schedule
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/210-course-schedule-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
210. Course Schedule II
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/310-minimum-height-trees/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
310. Minimum Height Trees
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/332-reconstruct-itinerary/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
332. Reconstruct Itinerary
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
</ul>
<h3 id="depth-first-search">Depth First Search</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/133-clone-graph/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
133. Clone Graph
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/100-same-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
100. Same Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/101-symmetric-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
101. Symmetric Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/104-maximum-depth-of-binary-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
104. Maximum Depth of Binary Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/105-construct-binary-tree-from-preorder-and-inorder-traversal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
105. Construct Binary Tree from Preorder and Inorder Traversal
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/106-construct-binary-tree-from-inorder-and-postorder-traversal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
106. Construct Binary Tree from Inorder and Postorder traversal
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/108-convert-sorted-array-to-binary-search-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
108. Convert Sorted Array to Binary Search Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/109-convert-sorted-list-to-binary-search-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
109. Convert Sorted List to Binary Search Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/110-balanced-binary-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
110. Balanced Binary Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/111-minimum-depth-of-binary-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
111. Minimum Depth of Binary Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/112-path-sum/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
112. Path Sum
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/113-path-sum-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
113. Path Sum II
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/114-flatten-binary-tree-to-linked-list/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
114. Flatten Binary Tree to Linked List
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/116-populating-next-right-pointers-in-each-node/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
116. Populating Next Right Pointers in Each Node
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/117-populating-next-right-pointers-in-each-node-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
117. Populating Next Right Pointers in Each Node II
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/124-binary-tree-maximum-path-sum/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
124. Binary Tree Maximum Path Sum
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/98-validate-binary-search-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
98. Validate Binary Search Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/99-recover-binary-search-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
99. Recover Binary Search Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/129-sum-root-to-leaf-numbers/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
129. Sum Root to Leaf Numbers
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/199-binary-tree-right-side-view/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
199. Binary Tree Right Side View
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/200-number-of-islands/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
200. Number of Islands
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/207-course-schedule/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
207. Course Schedule
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/210-course-schedule-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
210. Course Schedule II
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/257-binary-tree-paths/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
257. Binary Tree Paths
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/306-additive-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
306. Additive Number
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/329-longest-increasing-path-in-a-matrix/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
329. Longest Increasing Path in a Matrix
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/332-reconstruct-itinerary/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
332. Reconstruct Itinerary
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/337-house-robber-iii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
337. House Robber III
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
</ul>
<h3 id="breadth-first-search">Breadth First Search</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/133-clone-graph/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
133. Clone Graph
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/101-symmetric-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
101. Symmetric Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/102-Binary-Tree-Level-Order-Traversal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
102. Binary Tree Level Order Traversal
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/103-binary-tree-zigzag-level-order-traversal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
103. Binary Tree Zigzag Level Order Traversal
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/107-binary-tree-level-order-traversal-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
107. Binary Tree Level Order Traversal II
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/111-minimum-depth-of-binary-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
111. Minimum Depth of Binary Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/126-word-ladder-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
126. Word Ladder II
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/127-word-ladder/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
127. Word Ladder
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/130-surrounded-regions/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
130. Surrounded Regions
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/199-binary-tree-right-side-view/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
199. Binary Tree Right Side View
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/200-number-of-islands/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
200. Number of Islands
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/207-course-schedule/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
207. Course Schedule
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/210-course-schedule-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
210. Course Schedule II
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/279-perfect-squares/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
279. Perfect Squares
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/310-minimum-height-trees/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
310. Minimum Height Trees
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
</ul>
<h3 id="bit-manipulation">Bit Manipulation</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/78-subsets/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
78. Subsets
</a>
<span class="cate-post-date">28 Jun 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/136-single-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
136. Single Number
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/137-single-number-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
137. Single Number II
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/169-majority-element/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
169. Majority Element
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/187-repeated-dna-Sequences/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
187. Repeated DNA Sequences
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/190-reverse-bits/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
190. Reverse Bits
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/191-number-of-1-bits/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
191. Number of 1 Bits
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/201-bitwise-and-of-numbers-range/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
201. Bitwise AND of Numbers Range
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/231-power-of-two/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
231. Power of Two
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/260-single-number-iii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
260. Single Number III
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/268-missing-number/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
268. Missing Number
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/318-maximum-product-of-word-lengths/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
318. Maximum Product of Word Lengths
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/338-counting-bits/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
338. Counting Bits
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/342-power-of-four/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
342. Power of Four
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
</ul>
<h3 id="tree">Tree</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/94-binary-tree-inorder-traversal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
94. Binary Tree Inorder Traversal
</a>
<span class="cate-post-date">07 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/95-unique-binary-search-trees-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
95. Unique Binary Search Tree II
</a>
<span class="cate-post-date">07 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/100-same-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
100. Same Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/101-symmetric-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
101. Symmetric Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/102-Binary-Tree-Level-Order-Traversal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
102. Binary Tree Level Order Traversal
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/103-binary-tree-zigzag-level-order-traversal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
103. Binary Tree Zigzag Level Order Traversal
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/104-maximum-depth-of-binary-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
104. Maximum Depth of Binary Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/105-construct-binary-tree-from-preorder-and-inorder-traversal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
105. Construct Binary Tree from Preorder and Inorder Traversal
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/106-construct-binary-tree-from-inorder-and-postorder-traversal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
106. Construct Binary Tree from Inorder and Postorder traversal
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/107-binary-tree-level-order-traversal-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
107. Binary Tree Level Order Traversal II
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/108-convert-sorted-array-to-binary-search-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
108. Convert Sorted Array to Binary Search Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/110-balanced-binary-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
110. Balanced Binary Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/111-minimum-depth-of-binary-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
111. Minimum Depth of Binary Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/112-path-sum/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
112. Path Sum
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/113-path-sum-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
113. Path Sum II
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/114-flatten-binary-tree-to-linked-list/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
114. Flatten Binary Tree to Linked List
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/116-populating-next-right-pointers-in-each-node/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
116. Populating Next Right Pointers in Each Node
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/117-populating-next-right-pointers-in-each-node-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
117. Populating Next Right Pointers in Each Node II
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/124-binary-tree-maximum-path-sum/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
124. Binary Tree Maximum Path Sum
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/96-unique-binary-search-trees/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
96. Unique Binary Search Trees
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/98-validate-binary-search-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
98. Validate Binary Search Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/99-recover-binary-search-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
99. Recover Binary Search Tree
</a>
<span class="cate-post-date">11 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/129-sum-root-to-leaf-numbers/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
129. Sum Root to Leaf Numbers
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/144-binary-tree-preorder-traversal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
144. Binary Tree Preorder Traversal
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/145-binary-tree-postorder-traversal/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
145. Binary Tree Postorder Traversal
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/173-binary-search-tree-iterator/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
173. Binary Search Tree Iterator
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/199-binary-tree-right-side-view/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
199. Binary Tree Right Side View
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/222-count-complete-tree-nodes/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
222. Count Complete Tree Nodes
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/226-invert-binary-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
226. Invert Binary Tree
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/235-lowest-common-ancestor-of-a-binary-search-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
235. Lowest Common Ancestor of a Binary Search Tree
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/236-lowest-common-ancestor-of-a-binary-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
236. Lowest Common Ancestor of a Binary Tree
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/257-binary-tree-paths/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
257. Binary Tree Paths
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/297-serialize-and-deserialize-binary-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
297. Serialize And Deserialize Binary Tree
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/331-verify-preorder-serialization-of-a-binary-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
331. Verify Preorder Serialization of a Binary Tree
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/337-house-robber-iii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
337. House Robber III
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
</ul>
<h3 id="union-find">Union Find</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/128-longest-consecutive-sequence/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
128. Longest Consecutive Sequence
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/130-surrounded-regions/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
130. Surrounded Regions
</a>
<span class="cate-post-date">13 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/200-number-of-islands/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
200. Number of Islands
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
</ul>
<h3 id="design">Design</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/146-lru-cache/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
146. LRU Cache
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/155-min-stack/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
155. Min Stack
</a>
<span class="cate-post-date">15 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/173-binary-search-tree-iterator/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
173. Binary Search Tree Iterator
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/208-implement-trie-prefix-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
208. Implement Trie (Prefix Tree)
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/211-add-and-search-word-data-structure-design/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
211. Add and Search Word - Data structure design
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/225-implement-stack-using-queues/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
225. Implement Stack Using Queues
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/232-implement-queue-using-stacks/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
232. Implement Queue using Stacks
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/284-peeking-iterator/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
284. Peeking Iterator
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/295-find-median-from-data-stream/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
295. Find Median from Data Stream
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/297-serialize-and-deserialize-binary-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
297. Serialize And Deserialize Binary Tree
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/341-flatten-nested-list-iterator/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
341. Flatten Nested List Iterator
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
</ul>
<h3 id="topological-sort">Topological Sort</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/207-course-schedule/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
207. Course Schedule
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/210-course-schedule-ii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
210. Course Schedule II
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/329-longest-increasing-path-in-a-matrix/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
329. Longest Increasing Path in a Matrix
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
</ul>
<h3 id="trie">Trie</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/208-implement-trie-prefix-tree/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
208. Implement Trie (Prefix Tree)
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/211-add-and-search-word-data-structure-design/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
211. Add and Search Word - Data structure design
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
</ul>
<h3 id="binary-search-tree">Binary Search Tree</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/220-contains-duplicate-iii/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
220. Contains Duplicate III
</a>
<span class="cate-post-date">16 Jul 2016</span>
</li>
</ul>
<h3 id="brainteaser">Brainteaser</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/292-nim-game/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
292. Nim Game
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/319-bulb-switcher/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
319. Bulb Switcher
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
</ul>
<h3 id="segment-tree">Segment Tree</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/307-range-sum-query-mutable/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
307. Range Sum Query - Mutable
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
<li>
<a class="cate-title" href="/leetcode/218-the-skyline-problem/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
218. The Sky Line Problem
</a>
<span class="cate-post-date">25 Jul 2016</span>
</li>
</ul>
<h3 id="binary-index-tree">Binary Index Tree</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/307-range-sum-query-mutable/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
307. Range Sum Query - Mutable
</a>
<span class="cate-post-date">17 Jul 2016</span>
</li>
</ul>
<h3 id="memoization">Memoization</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/329-longest-increasing-path-in-a-matrix/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
329. Longest Increasing Path in a Matrix
</a>
<span class="cate-post-date">18 Jul 2016</span>
</li>
</ul>
<h3 id="binary-indexed-tree">Binary Indexed Tree</h3>
<ul class="cate-ul">
<li>
<a class="cate-title" href="/leetcode/218-the-skyline-problem/">
<span class="glyphicon glyphicon-record" style="font-size: 0.8em;margin-right: 4px;"></span>
218. The Sky Line Problem
</a>
<span class="cate-post-date">25 Jul 2016</span>
</li>
</ul>
</div>
</div>LeetCode 题解标签分类页LeetCode Solutions2016-05-27T00:00:00+00:002016-05-27T00:00:00+00:00http:imkean.com/LeetCode-Solutions<!--h2 id="blog-head" class="blog-post-title">
<span class="glyphicon glyphicon-bookmark span-blank-before"></span>
LeetCode Solutions
</h2!-->
<div class="post-blog-info">
<p><small><span class="glyphicon glyphicon-calendar span-blank-before">05/27/2016</span>
<span class="glyphicon glyphicon-th-list span-blank-before"></span>
<a class="cate-label" href="/categories/#题解合集"
style="margin-right:5px;">题解合集</a>
<span class="glyphicon glyphicon-tags span-blank-before"></span>
<a class="tags-label" href="/tags#algorithm"
style="margin-right:5px;">Algorithm</a>
<a class="tags-label" href="/tags#leetcode"
style="margin-right:5px;">LeetCode</a>
<a class="tags-label" href="/tags#oj"
style="margin-right:5px;">OJ</a>
</small></p>
</div>
<p>
近日闲来无事,基本把LeetCode刷了一遍。打算再闲的时候就写写题解,总结一下。因为题目较多,为了避免Leetcode题解泛滥于本博客,所以只用这一篇博客作为所有题解的入口,作为索引或目录页。
</p>
<h3>以下为刷过的题目列表</h3>
<table id="problem_list" align="center" class="tablesorter">
<thead>
<tr>
<th><a>ID</a></th>
<th><a>Title</a></th>
<th><a>Acceptance</a></th>
<th><a>Difficulty</a></th>
<th><a>Editorial</a></th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>
<a href="https://leetcode.com/problems/two-sum/">Two Sum</a>
</td>
<td>23.8%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/1-two-sum/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>2</td>
<td>
<a href="https://leetcode.com/problems/add-two-numbers/">Add Two Numbers</a>
</td>
<td>23.4%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/2-add-two-numbers/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>3</td>
<td>
<a href="https://leetcode.com/problems/longest-substring-without-repeating-characters/">Longest Substring Without Repeating Characters</a>
</td>
<td>22.2%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/3-longest-substring-without-repeating-characters/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>4</td>
<td>
<a href="https://leetcode.com/problems/median-of-two-sorted-arrays/">Median of Two Sorted Arrays</a>
</td>
<td>18.8%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/4-median-of-two-sorted-arrays/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>5</td>
<td>
<a href="https://leetcode.com/problems/longest-palindromic-substring/">Longest Palindromic Substring</a>
</td>
<td>23.3%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/5-longest-palindromic-substring/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>6</td>
<td>
<a href="https://leetcode.com/problems/zigzag-conversion/">ZigZag Conversion</a>
</td>
<td>24.2%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/6-zigzag-conversion/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>7</td>
<td>
<a href="https://leetcode.com/problems/reverse-integer/">Reverse Integer</a>
</td>
<td>23.7%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/7-reverse-integer/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>8</td>
<td>
<a href="https://leetcode.com/problems/string-to-integer-atoi/">String to Integer (atoi)</a>
</td>
<td>13.5%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/8-string-to-integer-atoi/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>9</td>
<td>
<a href="https://leetcode.com/problems/palindrome-number/">Palindrome Number</a>
</td>
<td>32.0%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/9-palindrome-number/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>10</td>
<td>
<a href="https://leetcode.com/problems/regular-expression-matching/">Regular Expression Matching</a>
</td>
<td>22.2%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/10-regular-expression-matching/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>11</td>
<td>
<a href="https://leetcode.com/problems/container-with-most-water/">Container With Most Water</a>
</td>
<td>34.8%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/11-container-with-most-water/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>12</td>
<td>
<a href="https://leetcode.com/problems/integer-to-roman/">Integer to Roman</a>
</td>
<td>39.3%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/12-integer-to-roman/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>13</td>
<td>
<a href="https://leetcode.com/problems/roman-to-integer/">Roman to Integer</a>
</td>
<td>39.9%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/13-roman-to-integer/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>14</td>
<td>
<a href="https://leetcode.com/problems/longest-common-prefix/">Longest Common Prefix</a>
</td>
<td>28.4%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/14-longest-common-prefix/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>15</td>
<td>
<a href="https://leetcode.com/problems/3sum/">3Sum</a>
</td>
<td>19.0%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/15-3sum/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>16</td>
<td>
<a href="https://leetcode.com/problems/3sum-closest/">3Sum Closest</a>
</td>
<td>29.3%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/16-3sum-closest/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>17</td>
<td>
<a href="https://leetcode.com/problems/letter-combinations-of-a-phone-number/">Letter Combinations of a Phone Number</a>
</td>
<td>29.0%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/17-letter-combinations-of-a-phone-number/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>18</td>
<td>
<a href="https://leetcode.com/problems/4sum/">4Sum</a>
</td>
<td>24.0%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/18-4sum/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>19</td>
<td>
<a href="https://leetcode.com/problems/remove-nth-node-from-end-of-list/">Remove Nth Node From End of List</a>
</td>
<td>29.8%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/19-remove-nth-node-from-end-of-list/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>20</td>
<td>
<a href="https://leetcode.com/problems/valid-parentheses/">Valid Parentheses</a>
</td>
<td>29.7%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/20-valid-parentheses/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>21</td>
<td>
<a href="https://leetcode.com/problems/merge-two-sorted-lists/">Merge Two Sorted Lists</a>
</td>
<td>35.7%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/21-merge-two-sorted-lists/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>22</td>
<td>
<a href="https://leetcode.com/problems/generate-parentheses/">Generate Parentheses</a>
</td>
<td>37.4%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/22-generate-parentheses/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>23</td>
<td>
<a href="https://leetcode.com/problems/merge-k-sorted-lists/">Merge k Sorted Lists</a>
</td>
<td>23.6%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/23-merge-k-sorted-lists/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>24</td>
<td>
<a href="https://leetcode.com/problems/swap-nodes-in-pairs/">Swap Nodes in Pairs</a>
</td>
<td>35.5%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/24-swap-nodes-in-pairs/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>25</td>
<td>
<a href="https://leetcode.com/problems/reverse-nodes-in-k-group/">Reverse Nodes in k-Group</a>
</td>
<td>27.8%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/25-reverse-nodes-in-k-group/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>26</td>
<td>
<a href="https://leetcode.com/problems/remove-duplicates-from-sorted-array/">Remove Duplicates from Sorted Array</a>
</td>
<td>33.7%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/26-remove-duplicates-from-sorted-array/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>27</td>
<td>
<a href="https://leetcode.com/problems/remove-element/">Remove Element</a>
</td>
<td>34.2%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/27-remove-element/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>28</td>
<td>
<a href="https://leetcode.com/problems/implement-strstr/">Implement strStr()</a>
</td>
<td>25.1%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/28-implement-strstr/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>29</td>
<td>
<a href="https://leetcode.com/problems/divide-two-integers/">Divide Two Integers</a>
</td>
<td>15.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/29-divide-two-integers/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>30</td>
<td>
<a href="https://leetcode.com/problems/substring-with-concatenation-of-all-words/">Substring with Concatenation of All Words</a>
</td>
<td>20.9%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/30-substring-with-concatenation-of-all-words/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>31</td>
<td>
<a href="https://leetcode.com/problems/next-permutation/">Next Permutation</a>
</td>
<td>26.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/31-next-permutation/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>32</td>
<td>
<a href="https://leetcode.com/problems/longest-valid-parentheses/">Longest Valid Parentheses</a>
</td>
<td>22.5%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/32-longest-valid-parentheses/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>33</td>
<td>
<a href="https://leetcode.com/problems/search-in-rotated-sorted-array/">Search in Rotated Sorted Array</a>
</td>
<td>30.5%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/33-search-in-rotated-sorted-array/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>34</td>
<td>
<a href="https://leetcode.com/problems/search-for-a-range/">Search for a Range</a>
</td>
<td>29.3%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/34-search-for-a-range/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>35</td>
<td>
<a href="https://leetcode.com/problems/search-insert-position/">Search Insert Position</a>
</td>
<td>37.5%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/35-search-insert-position/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>36</td>
<td>
<a href="https://leetcode.com/problems/valid-sudoku/">Valid Sudoku</a>
</td>
<td>31.0%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/36-valid-sudoku/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>37</td>
<td>
<a href="https://leetcode.com/problems/sudoku-solver/">Sudoku Solver</a>
</td>
<td>25.2%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/37-sudoku-solver/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>38</td>
<td>
<a href="https://leetcode.com/problems/count-and-say/">Count and Say</a>
</td>
<td>29.4%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/38-count-and-say/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>39</td>
<td>
<a href="https://leetcode.com/problems/combination-sum/">Combination Sum</a>
</td>
<td>31.3%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/39-combination-sum/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>40</td>
<td>
<a href="https://leetcode.com/problems/combination-sum-ii/">Combination Sum II</a>
</td>
<td>27.8%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/40-combination-sum-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>41</td>
<td>
<a href="https://leetcode.com/problems/first-missing-positive/">First Missing Positive</a>
</td>
<td>24.0%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/41-first-missing-positive/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>42</td>
<td>
<a href="https://leetcode.com/problems/trapping-rain-water/">Trapping Rain Water</a>
</td>
<td>32.5%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/42-trapping-rain-water/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>43</td>
<td>
<a href="https://leetcode.com/problems/multiply-strings/">Multiply Strings</a>
</td>
<td>23.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/43-multiply-strings/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>44</td>
<td>
<a href="https://leetcode.com/problems/wildcard-matching/">Wildcard Matching</a>
</td>
<td>17.6%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/44-wildcard-matching/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>45</td>
<td>
<a href="https://leetcode.com/problems/jump-game-ii/">Jump Game II</a>
</td>
<td>25.4%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/45-jump-game-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>46</td>
<td>
<a href="https://leetcode.com/problems/permutations/">Permutations</a>
</td>
<td>36.1%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/46-permutations/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>47</td>
<td>
<a href="https://leetcode.com/problems/permutations-ii/">Permutations II</a>
</td>
<td>28.2%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/47-permutations-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>48</td>
<td>
<a href="https://leetcode.com/problems/rotate-image/">Rotate Image</a>
</td>
<td>34.9%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/48-rotate-image/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>49</td>
<td>
<a href="https://leetcode.com/problems/anagrams/">Group Anagrams</a>
</td>
<td>27.9%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/49-anagrams/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>50</td>
<td>
<a href="https://leetcode.com/problems/powx-n/">Pow(x, n)</a>
</td>
<td>27.9%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/50-powx-n/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>51</td>
<td>
<a href="https://leetcode.com/problems/n-queens/">N-Queens</a>
</td>
<td>26.1%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/51-n-queens/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>52</td>
<td>
<a href="https://leetcode.com/problems/n-queens-ii/">N-Queens II</a>
</td>
<td>39.7%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/52-n-queens-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>53</td>
<td>
<a href="https://leetcode.com/problems/maximum-subarray/">Maximum Subarray</a>
</td>
<td>36.8%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/53-maximum-subarray/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>54</td>
<td>
<a href="https://leetcode.com/problems/spiral-matrix/">Spiral Matrix</a>
</td>
<td>22.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/54-spiral-matrix/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>55</td>
<td>
<a href="https://leetcode.com/problems/jump-game/">Jump Game</a>
</td>
<td>28.4%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/55-jump-game/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>56</td>
<td>
<a href="https://leetcode.com/problems/merge-intervals/">Merge Intervals</a>
</td>
<td>25.6%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/56-merge-intervals/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>57</td>
<td>
<a href="https://leetcode.com/problems/insert-interval/">Insert Interval</a>
</td>
<td>24.0%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/57-insert-interval/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>58</td>
<td>
<a href="https://leetcode.com/problems/length-of-last-word/">Length of Last Word</a>
</td>
<td>29.5%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/58-length-of-last-word/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>59</td>
<td>
<a href="https://leetcode.com/problems/spiral-matrix-ii/">Spiral Matrix II</a>
</td>
<td>35.3%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/59-spiral-matrix-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>60</td>
<td>
<a href="https://leetcode.com/problems/permutation-sequence/">Permutation Sequence</a>
</td>
<td>25.4%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/60-permutation-sequence/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>61</td>
<td>
<a href="https://leetcode.com/problems/rotate-list/">Rotate List</a>
</td>
<td>23.0%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/61-rotate-list/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>62</td>
<td>
<a href="https://leetcode.com/problems/unique-paths/">Unique Paths</a>
</td>
<td>36.6%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/62-unique-paths/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>63</td>
<td>
<a href="https://leetcode.com/problems/unique-paths-ii/">Unique Paths II</a>
</td>
<td>29.5%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/63-unique-paths-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>64</td>
<td>
<a href="https://leetcode.com/problems/minimum-path-sum/">Minimum Path Sum</a>
</td>
<td>35.1%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/64-minimum-path-sum/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>65</td>
<td>
<a href="https://leetcode.com/problems/valid-number/">Valid Number</a>
</td>
<td>12.2%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/65-valid-number/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>66</td>
<td>
<a href="https://leetcode.com/problems/plus-one/">Plus One</a>
</td>
<td>34.0%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/66-plus-one/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>67</td>
<td>
<a href="https://leetcode.com/problems/add-binary/">Add Binary</a>
</td>
<td>27.8%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/67-add-binary/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>68</td>
<td>
<a href="https://leetcode.com/problems/text-justification/">Text Justification</a>
</td>
<td>16.3%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/68-text-justification/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>69</td>
<td>
<a href="https://leetcode.com/problems/sqrtx/">Sqrt(x)</a>
</td>
<td>25.5%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/69-sqrtx/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>70</td>
<td>
<a href="https://leetcode.com/problems/climbing-stairs/">Climbing Stairs</a>
</td>
<td>36.9%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/70-climbing-stairs/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>71</td>
<td>
<a href="https://leetcode.com/problems/simplify-path/">Simplify Path</a>
</td>
<td>22.1%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/71-simplify-path/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>72</td>
<td>
<a href="https://leetcode.com/problems/edit-distance/">Edit Distance</a>
</td>
<td>28.8%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/72-edit-distance/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>73</td>
<td>
<a href="https://leetcode.com/problems/set-matrix-zeroes/">Set Matrix Zeroes</a>
</td>
<td>33.6%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/73-set-matrix-zeroes/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>74</td>
<td>
<a href="https://leetcode.com/problems/search-a-2d-matrix/">Search a 2D Matrix</a>
</td>
<td>34.0%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/74-search-a-2d-matrix/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>75</td>
<td>
<a href="https://leetcode.com/problems/sort-colors/">Sort Colors</a>
</td>
<td>34.9%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/75-sort-colors/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>76</td>
<td>
<a href="https://leetcode.com/problems/minimum-window-substring/">Minimum Window Substring</a>
</td>
<td>21.5%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/76-minimum-window-substring/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>77</td>
<td>
<a href="https://leetcode.com/problems/combinations/">Combinations</a>
</td>
<td>34.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/77-combinations/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>78</td>
<td>
<a href="https://leetcode.com/problems/subsets/">Subsets</a>
</td>
<td>31.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/78-subsets/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>79</td>
<td>
<a href="https://leetcode.com/problems/word-search/">Word Search</a>
</td>
<td>23.2%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/79-word-search/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>80</td>
<td>
<a href="https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/">Remove Duplicates from Sorted Array II</a>
</td>
<td>32.9%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/80-remove-duplicates-from-sorted-array-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>81</td>
<td>
<a href="https://leetcode.com/problems/search-in-rotated-sorted-array-ii/">Search in Rotated Sorted Array II</a>
</td>
<td>32.0%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/81-search-in-rotated-sorted-array-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>82</td>
<td>
<a href="https://leetcode.com/problems/remove-duplicates-from-sorted-list-ii/">Remove Duplicates from Sorted List II</a>
</td>
<td>27.1%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/82-remove-duplicates-from-sorted-list-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>83</td>
<td>
<a href="https://leetcode.com/problems/remove-duplicates-from-sorted-list/">Remove Duplicates from Sorted List</a>
</td>
<td>37.0%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/83-remove-duplicates-from-sorted-list/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>84</td>
<td>
<a href="https://leetcode.com/problems/largest-rectangle-in-histogram/">Largest Rectangle in Histogram</a>
</td>
<td>24.3%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/84-largest-rectangle-in-histogram/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>85</td>
<td>
<a href="https://leetcode.com/problems/maximal-rectangle/">Maximal Rectangle</a>
</td>
<td>23.7%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/85-maximal-rectangle/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>86</td>
<td>
<a href="https://leetcode.com/problems/partition-list/">Partition List</a>
</td>
<td>29.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/86-partition-list/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>87</td>
<td>
<a href="https://leetcode.com/problems/scramble-string/">Scramble String</a>
</td>
<td>26.7%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/87-scramble-string/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>88</td>
<td>
<a href="https://leetcode.com/problems/merge-sorted-array/">Merge Sorted Array</a>
</td>
<td>30.2%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/88-merge-sorted-array/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>89</td>
<td>
<a href="https://leetcode.com/problems/gray-code/">Gray Code</a>
</td>
<td>36.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/89-gray-code/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>90</td>
<td>
<a href="https://leetcode.com/problems/subsets-ii/">Subsets II</a>
</td>
<td>30.8%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/90-subsets-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>91</td>
<td>
<a href="https://leetcode.com/problems/decode-ways/">Decode Ways</a>
</td>
<td>17.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/91-decode-ways/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>92</td>
<td>
<a href="https://leetcode.com/problems/reverse-linked-list-ii/">Reverse Linked List II</a>
</td>
<td>28.1%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/92-reverse-linked-list-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>93</td>
<td>
<a href="https://leetcode.com/problems/restore-ip-addresses/">Restore IP Addresses</a>
</td>
<td>23.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/93-restore-ip-addresses/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>94</td>
<td>
<a href="https://leetcode.com/problems/binary-tree-inorder-traversal/">Binary Tree Inorder Traversal</a>
</td>
<td>40.0%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/94-binary-tree-inorder-traversal/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>95</td>
<td>
<a href="https://leetcode.com/problems/unique-binary-search-trees-ii/">Unique Binary Search Trees II</a>
</td>
<td>29.1%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/95-unique-binary-search-trees-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>96</td>
<td>
<a href="https://leetcode.com/problems/unique-binary-search-trees/">Unique Binary Search Trees</a>
</td>
<td>37.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/96-unique-binary-search-trees/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>97</td>
<td>
<a href="https://leetcode.com/problems/interleaving-string/">Interleaving String</a>
</td>
<td>22.6%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/97-interleaving-string/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>98</td>
<td>
<a href="https://leetcode.com/problems/validate-binary-search-tree/">Validate Binary Search Tree</a>
</td>
<td>21.1%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/98-validate-binary-search-tree/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>99</td>
<td>
<a href="https://leetcode.com/problems/recover-binary-search-tree/">Recover Binary Search Tree</a>
</td>
<td>26.7%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/99-recover-binary-search-tree/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>100</td>
<td>
<a href="https://leetcode.com/problems/same-tree/">Same Tree</a>
</td>
<td>43.5%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/100-same-tree/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>101</td>
<td>
<a href="https://leetcode.com/problems/symmetric-tree/">Symmetric Tree</a>
</td>
<td>34.1%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/101-symmetric-tree/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>102</td>
<td>
<a href="https://leetcode.com/problems/binary-tree-level-order-traversal/">Binary Tree Level Order Traversal</a>
</td>
<td>33.1%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/102-binary-tree-level-order-traversal/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>103</td>
<td>
<a href="https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/">Binary Tree Zigzag Level Order Traversal</a>
</td>
<td>28.9%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/103-binary-tree-zigzag-level-order-traversal/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>104</td>
<td>
<a href="https://leetcode.com/problems/maximum-depth-of-binary-tree/">Maximum Depth of Binary Tree</a>
</td>
<td>48.1%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/104-maximum-depth-of-binary-tree/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>105</td>
<td>
<a href="https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/">Construct Binary Tree from Preorder and Inorder Traversal</a>
</td>
<td>28.9%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/105-construct-binary-tree-from-preorder-and-inorder-traversal/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>106</td>
<td>
<a href="https://leetcode.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/">Construct Binary Tree from Inorder and Postorder Traversal</a>
</td>
<td>29.2%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/106-construct-binary-tree-from-inorder-and-postorder-traversal/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>107</td>
<td>
<a href="https://leetcode.com/problems/binary-tree-level-order-traversal-ii/">Binary Tree Level Order Traversal II</a>
</td>
<td>34.2%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/107-binary-tree-level-order-traversal-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>108</td>
<td>
<a href="https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/">Convert Sorted Array to Binary Search Tree</a>
</td>
<td>37.4%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/108-convert-sorted-array-to-binary-search-tree/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>109</td>
<td>
<a href="https://leetcode.com/problems/convert-sorted-list-to-binary-search-tree/">Convert Sorted List to Binary Search Tree</a>
</td>
<td>30.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/109-convert-sorted-list-to-binary-search-tree/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>110</td>
<td>
<a href="https://leetcode.com/problems/balanced-binary-tree/">Balanced Binary Tree</a>
</td>
<td>34.2%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/110-balanced-binary-tree/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>111</td>
<td>
<a href="https://leetcode.com/problems/minimum-depth-of-binary-tree/">Minimum Depth of Binary Tree</a>
</td>
<td>30.8%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/111-minimum-depth-of-binary-tree/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>112</td>
<td>
<a href="https://leetcode.com/problems/path-sum/">Path Sum</a>
</td>
<td>31.5%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/112-path-sum/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>113</td>
<td>
<a href="https://leetcode.com/problems/path-sum-ii/">Path Sum II</a>
</td>
<td>28.5%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/113-path-sum-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>114</td>
<td>
<a href="https://leetcode.com/problems/flatten-binary-tree-to-linked-list/">Flatten Binary Tree to Linked List</a>
</td>
<td>31.3%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/114-flatten-binary-tree-to-linked-list/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>115</td>
<td>
<a href="https://leetcode.com/problems/distinct-subsequences/">Distinct Subsequences</a>
</td>
<td>29.0%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/115-distinct-subsequences/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>116</td>
<td>
<a href="https://leetcode.com/problems/populating-next-right-pointers-in-each-node/">Populating Next Right Pointers in Each Node</a>
</td>
<td>36.6%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/116-populating-next-right-pointers-in-each-node/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>117</td>
<td>
<a href="https://leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/">Populating Next Right Pointers in Each Node II</a>
</td>
<td>32.8%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/117-populating-next-right-pointers-in-each-node-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>118</td>
<td>
<a href="https://leetcode.com/problems/pascals-triangle/">Pascal's Triangle</a>
</td>
<td>33.7%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/118-pascals-triangle/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>119</td>
<td>
<a href="https://leetcode.com/problems/pascals-triangle-ii/">Pascal's Triangle II</a>
</td>
<td>32.6%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/119-pascals-triangle-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>120</td>
<td>
<a href="https://leetcode.com/problems/triangle/">Triangle</a>
</td>
<td>30.4%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/120-triangle/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>121</td>
<td>
<a href="https://leetcode.com/problems/best-time-to-buy-and-sell-stock/">Best Time to Buy and Sell Stock</a>
</td>
<td>36.3%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/121-best-time-to-buy-and-sell-stock/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>122</td>
<td>
<a href="https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/">Best Time to Buy and Sell Stock II</a>
</td>
<td>42.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/122-best-time-to-buy-and-sell-stock-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>123</td>
<td>
<a href="https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iii/">Best Time to Buy and Sell Stock III</a>
</td>
<td>26.5%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/123-best-time-to-buy-and-sell-stock-iii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>124</td>
<td>
<a href="https://leetcode.com/problems/binary-tree-maximum-path-sum/">Binary Tree Maximum Path Sum</a>
</td>
<td>23.5%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/124-binary-tree-maximum-path-sum/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>125</td>
<td>
<a href="https://leetcode.com/problems/valid-palindrome/">Valid Palindrome</a>
</td>
<td>24.0%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/125-valid-palindrome/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>126</td>
<td>
<a href="https://leetcode.com/problems/word-ladder-ii/">Word Ladder II</a>
</td>
<td>13.7%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/126-word-ladder-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>127</td>
<td>
<a href="https://leetcode.com/problems/word-ladder/">Word Ladder</a>
</td>
<td>19.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/127-word-ladder/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>128</td>
<td>
<a href="https://leetcode.com/problems/longest-consecutive-sequence/">Longest Consecutive Sequence</a>
</td>
<td>32.5%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/128-longest-consecutive-sequence/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>129</td>
<td>
<a href="https://leetcode.com/problems/sum-root-to-leaf-numbers/">Sum Root to Leaf Numbers</a>
</td>
<td>32.9%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/129-sum-root-to-leaf-numbers/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>130</td>
<td>
<a href="https://leetcode.com/problems/surrounded-regions/">Surrounded Regions</a>
</td>
<td>16.2%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/130-surrounded-regions/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>131</td>
<td>
<a href="https://leetcode.com/problems/palindrome-partitioning/">Palindrome Partitioning</a>
</td>
<td>27.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/131-palindrome-partitioning/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>132</td>
<td>
<a href="https://leetcode.com/problems/palindrome-partitioning-ii/">Palindrome Partitioning II</a>
</td>
<td>21.9%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/132-palindrome-partitioning-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>133</td>
<td>
<a href="https://leetcode.com/problems/clone-graph/">Clone Graph</a>
</td>
<td>24.9%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/133-clone-graph/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>134</td>
<td>
<a href="https://leetcode.com/problems/gas-station/">Gas Station</a>
</td>
<td>27.5%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/134-gas-station/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>135</td>
<td>
<a href="https://leetcode.com/problems/candy/">Candy</a>
</td>
<td>22.6%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/135-candy/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>136</td>
<td>
<a href="https://leetcode.com/problems/single-number/">Single Number</a>
</td>
<td>50.1%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/136-single-number/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>137</td>
<td>
<a href="https://leetcode.com/problems/single-number-ii/">Single Number II</a>
</td>
<td>37.9%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/137-single-number-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>138</td>
<td>
<a href="https://leetcode.com/problems/copy-list-with-random-pointer/">Copy List with Random Pointer</a>
</td>
<td>26.1%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/138-copy-list-with-random-pointer/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>139</td>
<td>
<a href="https://leetcode.com/problems/word-break/">Word Break</a>
</td>
<td>25.6%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/139-word-break/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>140</td>
<td>
<a href="https://leetcode.com/problems/word-break-ii/">Word Break II</a>
</td>
<td>20.0%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/140-word-break-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>141</td>
<td>
<a href="https://leetcode.com/problems/linked-list-cycle/">Linked List Cycle</a>
</td>
<td>36.7%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/141-linked-list-cycle/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>142</td>
<td>
<a href="https://leetcode.com/problems/linked-list-cycle-ii/">Linked List Cycle II</a>
</td>
<td>31.4%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/142-linked-list-cycle-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>143</td>
<td>
<a href="https://leetcode.com/problems/reorder-list/">Reorder List</a>
</td>
<td>23.0%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/143-reorder-list/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>144</td>
<td>
<a href="https://leetcode.com/problems/binary-tree-preorder-traversal/">Binary Tree Preorder Traversal</a>
</td>
<td>40.2%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/144-binary-tree-preorder-traversal/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>145</td>
<td>
<a href="https://leetcode.com/problems/binary-tree-postorder-traversal/">Binary Tree Postorder Traversal</a>
</td>
<td>35.8%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/145-binary-tree-postorder-traversal/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>146</td>
<td>
<a href="https://leetcode.com/problems/lru-cache/">LRU Cache</a>
</td>
<td>15.8%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/146-lru-cache/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>147</td>
<td>
<a href="https://leetcode.com/problems/insertion-sort-list/">Insertion Sort List</a>
</td>
<td>29.6%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/147-insertion-sort-list/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>148</td>
<td>
<a href="https://leetcode.com/problems/sort-list/">Sort List</a>
</td>
<td>25.1%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/148-sort-list/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>149</td>
<td>
<a href="https://leetcode.com/problems/max-points-on-a-line/">Max Points on a Line</a>
</td>
<td>14.4%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/149-max-points-on-a-line/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>150</td>
<td>
<a href="https://leetcode.com/problems/evaluate-reverse-polish-notation/">Evaluate Reverse Polish Notation</a>
</td>
<td>23.8%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/150-evaluate-reverse-polish-notation/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>151</td>
<td>
<a href="https://leetcode.com/problems/reverse-words-in-a-string/">Reverse Words in a String</a>
</td>
<td>15.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/151-reverse-words-in-a-string/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>152</td>
<td>
<a href="https://leetcode.com/problems/maximum-product-subarray/">Maximum Product Subarray</a>
</td>
<td>22.4%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/152-maximum-product-subarray/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>153</td>
<td>
<a href="https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/">Find Minimum in Rotated Sorted Array</a>
</td>
<td>36.5%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/153-find-minimum-in-rotated-sorted-array/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>154</td>
<td>
<a href="https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/">Find Minimum in Rotated Sorted Array II</a>
</td>
<td>34.5%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/154-find-minimum-in-rotated-sorted-array-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>155</td>
<td>
<a href="https://leetcode.com/problems/min-stack/">Min Stack</a>
</td>
<td>22.6%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/155-min-stack/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>160</td>
<td>
<a href="https://leetcode.com/problems/intersection-of-two-linked-lists/">Intersection of Two Linked Lists</a>
</td>
<td>30.4%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/160-intersection-of-two-linked-lists/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>162</td>
<td>
<a href="https://leetcode.com/problems/find-peak-element/">Find Peak Element</a>
</td>
<td>33.0%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/162-find-peak-element/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>164</td>
<td>
<a href="https://leetcode.com/problems/maximum-gap/">Maximum Gap</a>
</td>
<td>26.9%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/164-maximum-gap/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>165</td>
<td>
<a href="https://leetcode.com/problems/compare-version-numbers/">Compare Version Numbers</a>
</td>
<td>17.7%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/165-compare-version-numbers/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>166</td>
<td>
<a href="https://leetcode.com/problems/fraction-to-recurring-decimal/">Fraction to Recurring Decimal</a>
</td>
<td>15.3%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/166-fraction-to-recurring-decimal/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>168</td>
<td>
<a href="https://leetcode.com/problems/excel-sheet-column-title/">Excel Sheet Column Title</a>
</td>
<td>22.0%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/168-excel-sheet-column-title/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>169</td>
<td>
<a href="https://leetcode.com/problems/majority-element/">Majority Element</a>
</td>
<td>41.7%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/169-majority-element/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>171</td>
<td>
<a href="https://leetcode.com/problems/excel-sheet-column-number/">Excel Sheet Column Number</a>
</td>
<td>42.1%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/171-excel-sheet-column-number/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>172</td>
<td>
<a href="https://leetcode.com/problems/factorial-trailing-zeroes/">Factorial Trailing Zeroes</a>
</td>
<td>33.0%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/172-factorial-trailing-zeroes/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>173</td>
<td>
<a href="https://leetcode.com/problems/binary-search-tree-iterator/">Binary Search Tree Iterator</a>
</td>
<td>35.0%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/173-binary-search-tree-iterator/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>174</td>
<td>
<a href="https://leetcode.com/problems/dungeon-game/">Dungeon Game</a>
</td>
<td>21.0%</td>
<td>Hard</td>
<td>
不日更新
</td>
</tr>
<tr>
<td>179</td>
<td>
<a href="https://leetcode.com/problems/largest-number/">Largest Number</a>
</td>
<td>19.3%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/179-largest-number/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>187</td>
<td>
<a href="https://leetcode.com/problems/repeated-dna-sequences/">Repeated DNA Sequences</a>
</td>
<td>25.8%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/187-repeated-dna-sequences/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>188</td>
<td>
<a href="https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iv/">Best Time to Buy and Sell Stock IV</a>
</td>
<td>22.5%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/188-best-time-to-buy-and-sell-stock-iv/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>189</td>
<td>
<a href="https://leetcode.com/problems/rotate-array/">Rotate Array</a>
</td>
<td>21.5%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/189-rotate-array/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>190</td>
<td>
<a href="https://leetcode.com/problems/reverse-bits/">Reverse Bits</a>
</td>
<td>29.3%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/190-reverse-bits/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>191</td>
<td>
<a href="https://leetcode.com/problems/number-of-1-bits/">Number of 1 Bits</a>
</td>
<td>37.5%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/191-number-of-1-bits/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>198</td>
<td>
<a href="https://leetcode.com/problems/house-robber/">House Robber</a>
</td>
<td>34.7%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/198-house-robber/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>199</td>
<td>
<a href="https://leetcode.com/problems/binary-tree-right-side-view/">Binary Tree Right Side View</a>
</td>
<td>35.0%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/199-binary-tree-right-side-view/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>200</td>
<td>
<a href="https://leetcode.com/problems/number-of-islands/">Number of Islands</a>
</td>
<td>28.0%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/200-number-of-islands/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>201</td>
<td>
<a href="https://leetcode.com/problems/bitwise-and-of-numbers-range/">Bitwise AND of Numbers Range</a>
</td>
<td>30.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/201-bitwise-and-of-numbers-range/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>202</td>
<td>
<a href="https://leetcode.com/problems/happy-number/">Happy Number</a>
</td>
<td>36.9%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/202-happy-number/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>203</td>
<td>
<a href="https://leetcode.com/problems/remove-linked-list-elements/">Remove Linked List Elements</a>
</td>
<td>29.0%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/203-remove-linked-list-elements/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>204</td>
<td>
<a href="https://leetcode.com/problems/count-primes/">Count Primes</a>
</td>
<td>24.7%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/204-count-primes/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>205</td>
<td>
<a href="https://leetcode.com/problems/isomorphic-strings/">Isomorphic Strings</a>
</td>
<td>30.0%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/205-isomorphic-strings/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>206</td>
<td>
<a href="https://leetcode.com/problems/reverse-linked-list/">Reverse Linked List</a>
</td>
<td>40.0%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/206-reverse-linked-list/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>207</td>
<td>
<a href="https://leetcode.com/problems/course-schedule/">Course Schedule</a>
</td>
<td>27.3%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/207-course-schedule/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>208</td>
<td>
<a href="https://leetcode.com/problems/implement-trie-prefix-tree/">Implement Trie (Prefix Tree)</a>
</td>
<td>25.3%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/208-implement-trie-prefix-tree/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>209</td>
<td>
<a href="https://leetcode.com/problems/minimum-size-subarray-sum/">Minimum Size Subarray Sum</a>
</td>
<td>27.2%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/209-minimum-size-subarray-sum/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>210</td>
<td>
<a href="https://leetcode.com/problems/course-schedule-ii/">Course Schedule II</a>
</td>
<td>21.0%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/210-course-schedule-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>211</td>
<td>
<a href="https://leetcode.com/problems/add-and-search-word-data-structure-design/">Add and Search Word - Data structure design</a>
</td>
<td>20.2%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/211-add-and-search-word-data-structure-design/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>212</td>
<td>
<a href="https://leetcode.com/problems/word-search-ii/">Word Search II</a>
</td>
<td>19.8%</td>
<td>Hard</td>
<td>
不日更新
</td>
</tr>
<tr>
<td>213</td>
<td>
<a href="https://leetcode.com/problems/house-robber-ii/">House Robber II</a>
</td>
<td>31.0%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/213-house-robber-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>214</td>
<td>
<a href="https://leetcode.com/problems/shortest-palindrome/">Shortest Palindrome</a>
</td>
<td>20.0%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/214-shortest-palindrome/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>215</td>
<td>
<a href="https://leetcode.com/problems/kth-largest-element-in-an-array/">Kth Largest Element in an Array</a>
</td>
<td>33.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/215-kth-largest-element-in-an-array/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>216</td>
<td>
<a href="https://leetcode.com/problems/combination-sum-iii/">Combination Sum III</a>
</td>
<td>36.3%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/216-combination-sum-iii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>217</td>
<td>
<a href="https://leetcode.com/problems/contains-duplicate/">Contains Duplicate</a>
</td>
<td>41.6%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/217-contains-duplicate/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>218</td>
<td>
<a href="https://leetcode.com/problems/the-skyline-problem/">The Skyline Problem</a>
</td>
<td>22.7%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/218-the-skyline-problem/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>219</td>
<td>
<a href="https://leetcode.com/problems/contains-duplicate-ii/">Contains Duplicate II</a>
</td>
<td>30.2%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/219-contains-duplicate-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>220</td>
<td>
<a href="https://leetcode.com/problems/contains-duplicate-iii/">Contains Duplicate III</a>
</td>
<td>18.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/220-contains-duplicate-iii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>221</td>
<td>
<a href="https://leetcode.com/problems/maximal-square/">Maximal Square</a>
</td>
<td>23.8%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/221-maximal-square/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>222</td>
<td>
<a href="https://leetcode.com/problems/count-complete-tree-nodes/">Count Complete Tree Nodes</a>
</td>
<td>25.3%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/222-count-complete-tree-nodes/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>223</td>
<td>
<a href="https://leetcode.com/problems/rectangle-area/">Rectangle Area</a>
</td>
<td>30.1%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/223-rectangle-area/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>224</td>
<td>
<a href="https://leetcode.com/problems/basic-calculator/">Basic Calculator</a>
</td>
<td>22.6%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/224-basic-calculator/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>225</td>
<td>
<a href="https://leetcode.com/problems/implement-stack-using-queues/">Implement Stack using Queues</a>
</td>
<td>30.6%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/225-implement-stack-using-queues/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>226</td>
<td>
<a href="https://leetcode.com/problems/invert-binary-tree/">Invert Binary Tree</a>
</td>
<td>46.0%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/226-invert-binary-tree/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>227</td>
<td>
<a href="https://leetcode.com/problems/basic-calculator-ii/">Basic Calculator II</a>
</td>
<td>25.4%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/227-basic-calculator-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>228</td>
<td>
<a href="https://leetcode.com/problems/summary-ranges/">Summary Ranges</a>
</td>
<td>24.6%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/228-summary-ranges/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>229</td>
<td>
<a href="https://leetcode.com/problems/majority-element-ii/">Majority Element II</a>
</td>
<td>25.8%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/229-majority-element-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>230</td>
<td>
<a href="https://leetcode.com/problems/kth-smallest-element-in-a-bst/">Kth Smallest Element in a BST</a>
</td>
<td>38.2%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/230-kth-smallest-element-in-a-bst/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>231</td>
<td>
<a href="https://leetcode.com/problems/power-of-two/">Power of Two</a>
</td>
<td>37.1%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/231-power-of-two/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>232</td>
<td>
<a href="https://leetcode.com/problems/implement-queue-using-stacks/">Implement Queue using Stacks</a>
</td>
<td>34.1%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/232-implement-queue-using-stacks/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>233</td>
<td>
<a href="https://leetcode.com/problems/number-of-digit-one/">Number of Digit One</a>
</td>
<td>24.9%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/233-number-of-digit-one/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>234</td>
<td>
<a href="https://leetcode.com/problems/palindrome-linked-list/">Palindrome Linked List</a>
</td>
<td>28.5%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/234-palindrome-linked-list/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>235</td>
<td>
<a href="https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/">Lowest Common Ancestor of a Binary Search Tree</a>
</td>
<td>37.6%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/235-lowest-common-ancestor-of-a-binary-search-tree/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>236</td>
<td>
<a href="https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/">Lowest Common Ancestor of a Binary Tree</a>
</td>
<td>28.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/236-lowest-common-ancestor-of-a-binary-tree/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>237</td>
<td>
<a href="https://leetcode.com/problems/delete-node-in-a-linked-list/">Delete Node in a Linked List</a>
</td>
<td>43.9%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/237-delete-node-in-a-linked-list/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>238</td>
<td>
<a href="https://leetcode.com/problems/product-of-array-except-self/">Product of Array Except Self</a>
</td>
<td>43.2%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/238-product-of-array-except-self/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>239</td>
<td>
<a href="https://leetcode.com/problems/sliding-window-maximum/">Sliding Window Maximum</a>
</td>
<td>27.8%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/239-sliding-window-maximum/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>240</td>
<td>
<a href="https://leetcode.com/problems/search-a-2d-matrix-ii/">Search a 2D Matrix II</a>
</td>
<td>34.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/240-search-a-2d-matrix-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>241</td>
<td>
<a href="https://leetcode.com/problems/different-ways-to-add-parentheses/">Different Ways to Add Parentheses</a>
</td>
<td>35.6%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/241-different-ways-to-add-parentheses/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>242</td>
<td>
<a href="https://leetcode.com/problems/valid-anagram/">Valid Anagram</a>
</td>
<td>42.2%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/242-valid-anagram/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>257</td>
<td>
<a href="https://leetcode.com/problems/binary-tree-paths/">Binary Tree Paths</a>
</td>
<td>29.0%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/257-binary-tree-paths/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>258</td>
<td>
<a href="https://leetcode.com/problems/add-digits/">Add Digits</a>
</td>
<td>48.7%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/258-add-digits/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>260</td>
<td>
<a href="https://leetcode.com/problems/single-number-iii/">Single Number III</a>
</td>
<td>44.3%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/260-single-number-iii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>263</td>
<td>
<a href="https://leetcode.com/problems/ugly-number/">Ugly Number</a>
</td>
<td>37.0%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/263-ugly-number/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>264</td>
<td>
<a href="https://leetcode.com/problems/ugly-number-ii/">Ugly Number II</a>
</td>
<td>28.6%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/264-ugly-number-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>268</td>
<td>
<a href="https://leetcode.com/problems/missing-number/">Missing Number</a>
</td>
<td>40.5%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/268-missing-number/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>273</td>
<td>
<a href="https://leetcode.com/problems/integer-to-english-words/">Integer to English Words</a>
</td>
<td>18.9%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/273-integer-to-english-words/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>274</td>
<td>
<a href="https://leetcode.com/problems/h-index/">H-Index</a>
</td>
<td>29.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/274-h-index/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>275</td>
<td>
<a href="https://leetcode.com/problems/h-index-ii/">H-Index II</a>
</td>
<td>32.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/275-h-index-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>278</td>
<td>
<a href="https://leetcode.com/problems/first-bad-version/">First Bad Version</a>
</td>
<td>22.6%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/278-first-bad-version/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>279</td>
<td>
<a href="https://leetcode.com/problems/perfect-squares/">Perfect Squares</a>
</td>
<td>33.0%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/279-perfect-squares/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>282</td>
<td>
<a href="https://leetcode.com/problems/expression-add-operators/">Expression Add Operators</a>
</td>
<td>25.3%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/282-expression-add-operators/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>283</td>
<td>
<a href="https://leetcode.com/problems/move-zeroes/">Move Zeroes</a>
</td>
<td>44.6%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/283-move-zeroes/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>284</td>
<td>
<a href="https://leetcode.com/problems/peeking-iterator/">Peeking Iterator</a>
</td>
<td>33.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/284-peeking-iterator/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>287</td>
<td>
<a href="https://leetcode.com/problems/find-the-duplicate-number/">Find the Duplicate Number</a>
</td>
<td>39.1%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/287-find-the-duplicate-number/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>289</td>
<td>
<a href="https://leetcode.com/problems/game-of-life/">Game of Life</a>
</td>
<td>34.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/289-game-of-life/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>290</td>
<td>
<a href="https://leetcode.com/problems/word-pattern/">Word Pattern</a>
</td>
<td>29.6%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/290-word-pattern/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>292</td>
<td>
<a href="https://leetcode.com/problems/nim-game/">Nim Game</a>
</td>
<td>53.2%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/292-nim-game/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>295</td>
<td>
<a href="https://leetcode.com/problems/find-median-from-data-stream/">Find Median from Data Stream</a>
</td>
<td>22.2%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/295-find-median-from-data-stream/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>297</td>
<td>
<a href="https://leetcode.com/problems/serialize-and-deserialize-binary-tree/">Serialize and Deserialize Binary Tree</a>
</td>
<td>28.1%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/297-serialize-and-deserialize-binary-tree/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>299</td>
<td>
<a href="https://leetcode.com/problems/bulls-and-cows/">Bulls and Cows</a>
</td>
<td>30.0%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/299-bulls-and-cows/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>300</td>
<td>
<a href="https://leetcode.com/problems/longest-increasing-subsequence/">Longest Increasing Subsequence</a>
</td>
<td>34.5%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/300-longest-increasing-subsequence/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>301</td>
<td>
<a href="https://leetcode.com/problems/remove-invalid-parentheses/">Remove Invalid Parentheses</a>
</td>
<td>32.2%</td>
<td>Hard</td>
<td>
不日更新
</td>
</tr>
<tr>
<td>303</td>
<td>
<a href="https://leetcode.com/problems/range-sum-query-immutable/">Range Sum Query - Immutable</a>
</td>
<td>24.7%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/303-range-sum-query-immutable/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>304</td>
<td>
<a href="https://leetcode.com/problems/range-sum-query-2d-immutable/">Range Sum Query 2D - Immutable</a>
</td>
<td>22.2%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/304-range-sum-query-2d-immutable/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>306</td>
<td>
<a href="https://leetcode.com/problems/additive-number/">Additive Number</a>
</td>
<td>25.7%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/306-additive-number/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>307</td>
<td>
<a href="https://leetcode.com/problems/range-sum-query-mutable/">Range Sum Query - Mutable</a>
</td>
<td>17.6%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/307-range-sum-query-mutable/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>309</td>
<td>
<a href="https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/">Best Time to Buy and Sell Stock with Cooldown</a>
</td>
<td>36.9%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/309-best-time-to-buy-and-sell-stock-with-cooldown/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>310</td>
<td>
<a href="https://leetcode.com/problems/minimum-height-trees/">Minimum Height Trees</a>
</td>
<td>26.9%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/310-minimum-height-trees/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>312</td>
<td>
<a href="https://leetcode.com/problems/burst-balloons/">Burst Balloons</a>
</td>
<td>37.3%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/312-burst-balloons/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>313</td>
<td>
<a href="https://leetcode.com/problems/super-ugly-number/">Super Ugly Number</a>
</td>
<td>34.8%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/313-super-ugly-number/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>315</td>
<td>
<a href="https://leetcode.com/problems/count-of-smaller-numbers-after-self/">Count of Smaller Numbers After Self</a>
</td>
<td>31.1%</td>
<td>Hard</td>
<td>
不日更新
</td>
</tr>
<tr>
<td>316</td>
<td>
<a href="https://leetcode.com/problems/remove-duplicate-letters/">Remove Duplicate Letters</a>
</td>
<td>25.3%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/316-remove-duplicate-letters/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>318</td>
<td>
<a href="https://leetcode.com/problems/maximum-product-of-word-lengths/">Maximum Product of Word Lengths</a>
</td>
<td>39.9%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/318-maximum-product-of-word-lengths/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>319</td>
<td>
<a href="https://leetcode.com/problems/bulb-switcher/">Bulb Switcher</a>
</td>
<td>40.9%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/319-bulb-switcher/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>321</td>
<td>
<a href="https://leetcode.com/problems/create-maximum-number/">Create Maximum Number</a>
</td>
<td>21.1%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/321-create-maximum-number/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>322</td>
<td>
<a href="https://leetcode.com/problems/coin-change/">Coin Change</a>
</td>
<td>25.0%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/322-coin-change/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>324</td>
<td>
<a href="https://leetcode.com/problems/wiggle-sort-ii/">Wiggle Sort II</a>
</td>
<td>22.5%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/324-wiggle-sort-ii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>326</td>
<td>
<a href="https://leetcode.com/problems/power-of-three/">Power of Three</a>
</td>
<td>37.1%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/326-power-of-three/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>327</td>
<td>
<a href="https://leetcode.com/problems/count-of-range-sum/">Count of Range Sum</a>
</td>
<td>26.9%</td>
<td>Hard</td>
<td>
不日更新
</td>
</tr>
<tr>
<td>328</td>
<td>
<a href="https://leetcode.com/problems/odd-even-linked-list/">Odd Even Linked List</a>
</td>
<td>38.5%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/328-odd-even-linked-list/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>329</td>
<td>
<a href="https://leetcode.com/problems/longest-increasing-path-in-a-matrix/">Longest Increasing Path in a Matrix</a>
</td>
<td>32.0%</td>
<td>Hard</td>
<td>
<span class="span-link">
<a href="/leetcode/329-longest-increasing-path-in-a-matrix/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>330</td>
<td>
<a href="https://leetcode.com/problems/patching-array/">Patching Array</a>
</td>
<td>29.5%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/330-patching-array/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>331</td>
<td>
<a href="https://leetcode.com/problems/verify-preorder-serialization-of-a-binary-tree/">Verify Preorder Serialization of a Binary Tree</a>
</td>
<td>31.9%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/331-verify-preorder-serialization-of-a-binary-tree/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>332</td>
<td>
<a href="https://leetcode.com/problems/reconstruct-itinerary/">Reconstruct Itinerary</a>
</td>
<td>24.3%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/332-reconstruct-itinerary/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>334</td>
<td>
<a href="https://leetcode.com/problems/increasing-triplet-subsequence/">Increasing Triplet Subsequence</a>
</td>
<td>33.9%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/334-increasing-triplet-subsequence/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>335</td>
<td>
<a href="https://leetcode.com/problems/self-crossing/">Self Crossing</a>
</td>
<td>19.9%</td>
<td>Hard</td>
<td>
不日更新
</td>
</tr>
<tr>
<td>336</td>
<td>
<a href="https://leetcode.com/problems/palindrome-pairs/">Palindrome Pairs</a>
</td>
<td>20.0%</td>
<td>Hard</td>
<td>
不日更新
</td>
</tr>
<tr>
<td>337</td>
<td>
<a href="https://leetcode.com/problems/house-robber-iii/">House Robber III</a>
</td>
<td>37.4%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/337-house-robber-iii/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>338</td>
<td>
<a href="https://leetcode.com/problems/counting-bits/">Counting Bits</a>
</td>
<td>56.4%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/338-counting-bits/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>341</td>
<td>
<a href="https://leetcode.com/problems/flatten-nested-list-iterator/">Flatten Nested List Iterator</a>
</td>
<td>27.2%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/341-flatten-nested-list-iterator/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>342</td>
<td>
<a href="https://leetcode.com/problems/power-of-four/">Power of Four</a>
</td>
<td>33.8%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/342-power-of-four/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>343</td>
<td>
<a href="https://leetcode.com/problems/integer-break/">Integer Break</a>
</td>
<td>40.6%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/343-integer-break/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>344</td>
<td>
<a href="https://leetcode.com/problems/reverse-string/">Reverse String</a>
</td>
<td>58.4%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/344-reverse-string/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>345</td>
<td>
<a href="https://leetcode.com/problems/reverse-vowels-of-a-string/">Reverse Vowels of a String</a>
</td>
<td>35.2%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/345-reverse-vowels-of-a-string/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>347</td>
<td>
<a href="https://leetcode.com/problems/top-k-frequent-elements/">Top K Frequent Elements</a>
</td>
<td>41.9%</td>
<td>Medium</td>
<td>
<span class="span-link">
<a href="/leetcode/347-top-k-frequent-elements/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>349</td>
<td>
<a href="https://leetcode.com/problems/intersection-of-two-arrays/">Intersection of Two Arrays</a>
</td>
<td>45.0%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/349-intersection-of-two-arrays/">查看题解</a>
</span>
</td>
</tr>
<tr>
<td>350</td>
<td>
<a href="https://leetcode.com/problems/intersection-of-two-arrays-ii/">Intersection of Two Arrays II</a>
</td>
<td>41.2%</td>
<td>Easy</td>
<td>
<span class="span-link">
<a href="/leetcode/350-intersection-of-two-arrays-ii/">查看题解</a>
</span>
</td>
</tr>
</tbody>
</table>I have amost solved all the free preblems. It's an index for all probelems, and I'll update some new solutions timely微软2016校园招聘4月在线笔试题2016-04-08T00:00:00+00:002016-04-08T00:00:00+00:00http:imkean.com/2016_microsoft_exam<!-- more -->
<p><!-- more --></p>
<ul id="toc_of_keans_blog">
<li><a href="#简介" id="toc_of_keans_blog-简介">简介</a></li>
<li><a href="#题解" id="toc_of_keans_blog-题解">题解</a></li>
</ul>
<h2 id="简介">简介</h2>
<p>微软2016校园招聘4月在线笔试题,全部四题,全部提交通过了</p>
<h2 id="题解">题解</h2>
<table>
<thead>
<tr>
<th>Problem</th>
<th style="text-align: left">Solution</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Hihorcoder 1288 Font Size</strong></td>
<td style="text-align: left"><span class="span-link"><a href="/Hihorcoder-1288-Font-Size/">查看题解</a></span></td>
</tr>
<tr>
<td><strong>Hihocoder 1289 403 Forbidden</strong></td>
<td style="text-align: left"><span class="span-link"><a href="/Hihocoder-1289-403-Forbidden/">查看题解</a></span></td>
</tr>
<tr>
<td><strong>Hihocoder 1290 Demo Day</strong></td>
<td style="text-align: left"><span class="span-link"><a href="/Hihocoder-1290-Demo-Day/">查看题解</a></span></td>
</tr>
<tr>
<td><strong>Hihocoder 1291 Building in Sandbox</strong></td>
<td style="text-align: left"><span class="span-link"><a href="/Hihocoder-1291-Building-in-Sandbox/">查看题解</a></span></td>
</tr>
</tbody>
</table>微软2016校园招聘4月在线笔试题,全部四题,全部提交通过了Hihocoder 1288 Font Size2016-04-07T00:00:00+00:002016-04-07T00:00:00+00:00http:imkean.com/Hihorcoder-1288-Font-Size<ul id="toc_of_keans_blog">
<li><a href="#描述" id="toc_of_keans_blog-描述">描述</a></li>
<li><a href="#输入" id="toc_of_keans_blog-输入">输入</a></li>
<li><a href="#输出" id="toc_of_keans_blog-输出">输出</a></li>
<li><a href="#解题思路" id="toc_of_keans_blog-解题思路">解题思路</a></li>
<li><a href="#代码" id="toc_of_keans_blog-代码">代码</a></li>
</ul>
<p>时间限制:10000ms
单点时限:1000ms
内存限制:256MB</p>
<h2 id="描述">描述</h2>
<p>Steven loves reading book on his phone. The book he reads now consists of N paragraphs and the i-th paragraph contains ai characters.
Steven wants to make the characters easier to read, so he decides to increase the font size of characters. But the size of Steven’s phone screen is limited. Its width is W and height is H. As a result, if the font size of characters is S then it can only show ⌊W / S⌋ characters in a line and ⌊H / S⌋ lines in a page. (⌊x⌋ is the largest integer no more than x)<br />
So here’s the question, if Steven wants to control the number of pages no more than P, what’s the maximum font size he can set? Note that paragraphs must start in a new line and there is no empty line between paragraphs.</p>
<h2 id="输入">输入</h2>
<p>Input may contain multiple test cases.
The first line is an integer TASKS, representing the number of test cases.
For each test case, the first line contains four integers N, P, W and H, as described above.
The second line contains N integers a1, a2, … aN, indicating the number of characters in each paragraph.
For all test cases,
<script type="math/tex">% <![CDATA[
1 <= N <= 10^3 %]]></script>
<script type="math/tex">% <![CDATA[
1 <= W, H, ai <= 10^3 %]]></script>
<script type="math/tex">% <![CDATA[
1 <= P <= 10^6 %]]></script>
There is always a way to control the number of pages no more than P.</p>
<h2 id="输出">输出</h2>
<p>For each test case, output a line with an integer Ans, indicating the maximum font size Steven can set.</p>
<p><strong>样例输入</strong></p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>2
1 10 4 3
10
2 10 4 3
10 10
</code></pre></div></div>
<p><strong>样例输出</strong></p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>3
2
</code></pre></div></div>
<h2 id="解题思路">解题思路</h2>
<blockquote>
<p>好像暴力都可以过,不过还是二分是正道(二分写的渣了点。。。)</p>
</blockquote>
<h2 id="代码">代码</h2>
<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#include <stdio.h>
#include <algorithm>
</span>
<span class="k">using</span> <span class="n">std</span><span class="o">::</span><span class="n">min</span><span class="p">;</span>
<span class="k">using</span> <span class="n">std</span><span class="o">::</span><span class="n">max</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">data</span><span class="p">[</span><span class="mi">10000</span><span class="p">];</span>
<span class="kt">int</span> <span class="nf">check</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">,</span> <span class="kt">int</span> <span class="n">para</span><span class="p">,</span> <span class="kt">int</span> <span class="n">w</span><span class="p">,</span> <span class="kt">int</span> <span class="n">h</span><span class="p">)</span>
<span class="p">{</span>
<span class="kt">int</span> <span class="n">ret</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">w_cnt</span> <span class="o">=</span> <span class="n">w</span> <span class="o">/</span> <span class="n">n</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">l_cnt</span> <span class="o">=</span> <span class="n">h</span> <span class="o">/</span> <span class="n">n</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">w_cnt</span> <span class="o">||</span> <span class="o">!</span><span class="n">l_cnt</span><span class="p">)</span>
<span class="k">return</span> <span class="mh">0x3fffffff</span><span class="p">;</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="n">para</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
<span class="n">ret</span> <span class="o">+=</span> <span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+</span> <span class="n">w_cnt</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">/</span> <span class="n">w_cnt</span><span class="p">;</span>
<span class="n">ret</span> <span class="o">=</span> <span class="p">(</span><span class="n">ret</span> <span class="o">+</span> <span class="n">l_cnt</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">/</span> <span class="n">l_cnt</span><span class="p">;</span>
<span class="k">return</span> <span class="n">ret</span><span class="p">;</span>
<span class="p">}</span>
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
<span class="kt">int</span> <span class="n">T</span><span class="p">,</span> <span class="n">para</span><span class="p">,</span> <span class="n">page</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">h</span><span class="p">;</span>
<span class="n">scanf</span><span class="p">(</span><span class="s">"%d"</span><span class="p">,</span> <span class="o">&</span><span class="n">T</span><span class="p">);</span>
<span class="k">while</span> <span class="p">(</span><span class="n">T</span><span class="o">--</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">scanf</span><span class="p">(</span><span class="s">"%d%d%d%d"</span><span class="p">,</span> <span class="o">&</span><span class="n">para</span><span class="p">,</span> <span class="o">&</span><span class="n">page</span><span class="p">,</span> <span class="o">&</span><span class="n">w</span><span class="p">,</span> <span class="o">&</span><span class="n">h</span><span class="p">);</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="n">para</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
<span class="n">scanf</span><span class="p">(</span><span class="s">"%d"</span><span class="p">,</span> <span class="o">&</span><span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">]);</span>
<span class="kt">int</span> <span class="n">low</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="n">up</span> <span class="o">=</span> <span class="n">min</span><span class="p">(</span><span class="n">w</span><span class="p">,</span> <span class="n">h</span><span class="p">);</span>
<span class="kt">int</span> <span class="n">cnt</span><span class="p">,</span> <span class="n">mid</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="n">ans</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="k">while</span> <span class="p">(</span><span class="n">low</span> <span class="o"><=</span> <span class="n">up</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">mid</span> <span class="o">=</span> <span class="p">(</span><span class="n">low</span> <span class="o">+</span> <span class="n">up</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">;</span>
<span class="n">cnt</span> <span class="o">=</span> <span class="n">check</span><span class="p">(</span><span class="n">mid</span><span class="p">,</span> <span class="n">para</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">h</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="n">cnt</span> <span class="o">></span> <span class="n">page</span><span class="p">)</span>
<span class="n">up</span> <span class="o">=</span> <span class="n">mid</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
<span class="k">else</span>
<span class="p">{</span>
<span class="n">ans</span> <span class="o">=</span> <span class="n">mid</span><span class="p">;</span>
<span class="n">low</span> <span class="o">=</span> <span class="n">mid</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="n">printf</span><span class="p">(</span><span class="s">"%d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="n">ans</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>2016年微软校园招聘在线笔试第一题,简单的二分搜索题Hihocoder 1291 Buiding in Sandbox2016-04-07T00:00:00+00:002016-04-07T00:00:00+00:00http:imkean.com/Hihocoder-1291-Building-in-Sandbox<ul id="toc_of_keans_blog">
<li><a href="#描述" id="toc_of_keans_blog-描述">描述</a></li>
<li><a href="#输入" id="toc_of_keans_blog-输入">输入</a></li>
<li><a href="#输出" id="toc_of_keans_blog-输出">输出</a></li>
<li><a href="#样例提示" id="toc_of_keans_blog-样例提示">样例提示</a></li>
<li><a href="#解题思路" id="toc_of_keans_blog-解题思路">解题思路</a></li>
<li><a href="#代码" id="toc_of_keans_blog-代码">代码</a></li>
</ul>
<p>时间限制:30000ms
单点时限:3000ms
内存限制:256MB</p>
<h2 id="描述">描述</h2>
<p>Little Hi is playing a sandbox voxel game. In the game the whole world is constructed by massive 1x1x1 cubes. The edges of cubes are parallel to the coordinate axes and the coordinates (x, y, z) of the center of each cube are integers.</p>
<p><img src="/images/posts/2016/4/16_4_7_1.jpg" alt="picture" /></p>
<p>At the beginning there is nothing but plane ground in the world. The ground consists of all the cubes of z=0. Little Hi needs to build everything by placing cubes one by one following the rules:</p>
<ol>
<li>
<p>The newly placed cube must be adjacent to the ground or a previously placed cube. Two cubes are adjacent if and only if they share a same face.</p>
</li>
<li>
<p>The newly placed cube must be accessible from outside which means by moving in 6 directions(up, down, left, right, forward, backward) there is a path from a very far place - say (1000, 1000, 1000) in this problem - to this cube without passing through ground or other cubes.</p>
</li>
</ol>
<p>Given a sequence of cubes Little Hi wants to know if he can build the world by placing the cubes in such order.</p>
<h2 id="输入">输入</h2>
<p>The first line contains the number of test cases T(1 <= T <= 10).
For each test case the first line is N the number of cubes in the sequence.
The following N lines each contain three integers x, y and z indicating the coordinates of a cube.
For 20% of the data, 1 <= N <= 1000, 1 <= x, y, z <= 10.
For 100% of the data, 1 <= N <= 100000, 1 <= x, y, z <= 100.</p>
<h2 id="输出">输出</h2>
<p>For each testcase output “Yes” or “No” indicating if Little Hi can place the cubes in such order.</p>
<h2 id="样例提示">样例提示</h2>
<p>In the first test case three cubes are placed on the ground. It’s OK.
In the second test case (1, 3, 2) is neither on the ground nor adjacent to previous cubes. So it can’t be placed.
In the last test case (2, 2, 1) can not be reached from outside. So it can’t be placed.</p>
<p><strong>样例输入</strong></p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>3
3
1 1 1
1 2 1
1 3 1
3
1 1 1
1 2 1
1 3 2
17
1 1 1
1 2 1
1 3 1
2 3 1
3 3 1
3 2 1
3 1 1
2 1 1
2 1 2
1 1 2
1 2 2
1 3 2
2 3 2
3 3 2
3 2 2
2 2 2
2 2 1
</code></pre></div></div>
<p><strong>样例输出</strong></p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Yes
No
No
</code></pre></div></div>
<h2 id="解题思路">解题思路</h2>
<blockquote>
<p>BFS</p>
</blockquote>
<h2 id="代码">代码</h2>
<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <queue>
</span>
<span class="k">using</span> <span class="n">std</span><span class="o">::</span><span class="n">max</span><span class="p">;</span>
<span class="k">using</span> <span class="n">std</span><span class="o">::</span><span class="n">queue</span><span class="p">;</span>
<span class="k">const</span> <span class="kt">int</span> <span class="n">MAXN</span> <span class="o">=</span> <span class="mi">128</span><span class="p">;</span>
<span class="k">const</span> <span class="kt">int</span> <span class="n">OUTER</span> <span class="o">=</span> <span class="mh">0x3fffffff</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">cube</span><span class="p">[</span><span class="n">MAXN</span><span class="p">][</span><span class="n">MAXN</span><span class="p">][</span><span class="n">MAXN</span><span class="p">];</span>
<span class="kt">int</span> <span class="n">cnt</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">vis</span><span class="p">[</span><span class="n">MAXN</span><span class="p">][</span><span class="n">MAXN</span><span class="p">][</span><span class="n">MAXN</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">};</span>
<span class="kt">int</span> <span class="n">data</span><span class="p">[</span><span class="mi">100000</span> <span class="o">+</span> <span class="mi">5</span><span class="p">][</span><span class="mi">3</span><span class="p">];</span>
<span class="k">const</span> <span class="kt">int</span> <span class="n">dx</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">};</span>
<span class="k">const</span> <span class="kt">int</span> <span class="n">dy</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">};</span>
<span class="k">const</span> <span class="kt">int</span> <span class="n">dz</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span><span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">};</span>
<span class="kt">bool</span> <span class="n">bfs</span><span class="p">(</span><span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">y</span><span class="p">,</span> <span class="kt">int</span> <span class="n">z</span><span class="p">,</span> <span class="kt">int</span> <span class="n">lim</span><span class="p">);</span>
<span class="k">struct</span> <span class="n">State</span> <span class="p">{</span>
<span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">z</span><span class="p">;</span>
<span class="n">State</span><span class="p">()</span> <span class="o">:</span> <span class="n">x</span><span class="p">(</span><span class="mi">0</span><span class="p">),</span> <span class="n">y</span><span class="p">(</span><span class="mi">0</span><span class="p">),</span> <span class="n">z</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<span class="p">{</span> <span class="p">}</span>
<span class="n">State</span><span class="p">(</span><span class="kt">int</span> <span class="n">a</span><span class="p">,</span> <span class="kt">int</span> <span class="n">b</span><span class="p">,</span> <span class="kt">int</span> <span class="n">c</span><span class="p">)</span> <span class="o">:</span> <span class="n">x</span><span class="p">(</span><span class="n">a</span><span class="p">),</span> <span class="n">y</span><span class="p">(</span><span class="n">b</span><span class="p">),</span> <span class="n">z</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
<span class="p">{</span> <span class="p">}</span>
<span class="p">};</span>
<span class="kt">bool</span> <span class="nf">adjacent</span><span class="p">(</span><span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">y</span><span class="p">,</span> <span class="kt">int</span> <span class="n">z</span><span class="p">)</span>
<span class="p">{</span>
<span class="kt">int</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">z</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span> <span class="k">return</span> <span class="nb">true</span><span class="p">;</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="mi">6</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">a</span> <span class="o">=</span> <span class="n">x</span> <span class="o">+</span> <span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
<span class="n">b</span> <span class="o">=</span> <span class="n">y</span> <span class="o">+</span> <span class="n">dy</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
<span class="n">c</span> <span class="o">=</span> <span class="n">z</span> <span class="o">+</span> <span class="n">dz</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="n">a</span> <span class="o">></span> <span class="mi">0</span> <span class="o">&&</span> <span class="n">b</span> <span class="o">></span> <span class="mi">0</span> <span class="o">&&</span> <span class="n">c</span> <span class="o">></span> <span class="mi">0</span> <span class="o">&&</span> <span class="n">cube</span><span class="p">[</span><span class="n">a</span><span class="p">][</span><span class="n">b</span><span class="p">][</span><span class="n">c</span><span class="p">])</span>
<span class="k">return</span> <span class="nb">true</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">return</span> <span class="nb">false</span><span class="p">;</span>
<span class="p">}</span>
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
<span class="kt">int</span> <span class="n">t</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">z</span><span class="p">,</span> <span class="n">flag</span><span class="p">,</span> <span class="n">lim</span><span class="p">;</span>
<span class="n">scanf</span><span class="p">(</span><span class="s">"%d"</span><span class="p">,</span> <span class="o">&</span><span class="n">t</span><span class="p">);</span>
<span class="k">while</span> <span class="p">(</span><span class="n">t</span><span class="o">--</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">lim</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="n">flag</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
<span class="n">scanf</span><span class="p">(</span><span class="s">"%d"</span><span class="p">,</span> <span class="o">&</span><span class="n">cnt</span><span class="p">);</span>
<span class="n">memset</span><span class="p">(</span><span class="n">cube</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">cube</span><span class="p">));</span>
<span class="n">memset</span><span class="p">(</span><span class="n">vis</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">vis</span><span class="p">));</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="n">cnt</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">scanf</span><span class="p">(</span><span class="s">"%d%d%d"</span><span class="p">,</span> <span class="o">&</span><span class="n">x</span><span class="p">,</span> <span class="o">&</span><span class="n">y</span><span class="p">,</span> <span class="o">&</span><span class="n">z</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">adjacent</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">z</span><span class="p">))</span>
<span class="p">{</span>
<span class="c1">//printf("err: %d %d %d \n",x,y,z);
</span> <span class="n">flag</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
<span class="n">cube</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="n">y</span><span class="p">][</span><span class="n">z</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">);</span>
<span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">x</span><span class="p">;</span>
<span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">y</span><span class="p">;</span>
<span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="n">z</span><span class="p">;</span>
<span class="n">lim</span> <span class="o">=</span> <span class="n">max</span><span class="p">(</span><span class="n">max</span><span class="p">(</span><span class="n">lim</span><span class="p">,</span> <span class="n">x</span><span class="p">),</span> <span class="n">max</span><span class="p">(</span><span class="n">y</span><span class="p">,</span> <span class="n">z</span><span class="p">));</span>
<span class="p">}</span>
<span class="n">lim</span> <span class="o">+=</span> <span class="mi">2</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">flag</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">cube</span><span class="p">[</span><span class="n">lim</span><span class="p">][</span><span class="n">lim</span><span class="p">][</span><span class="n">lim</span><span class="p">]</span> <span class="o">=</span> <span class="n">cnt</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span>
<span class="n">bfs</span><span class="p">(</span><span class="n">lim</span><span class="p">,</span> <span class="n">lim</span><span class="p">,</span> <span class="n">lim</span><span class="p">,</span> <span class="n">lim</span><span class="p">);</span>
<span class="k">while</span> <span class="p">(</span><span class="n">cnt</span><span class="o">--</span> <span class="o">&&</span> <span class="n">flag</span><span class="p">)</span>
<span class="n">flag</span> <span class="o">=</span> <span class="n">bfs</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">cnt</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">data</span><span class="p">[</span><span class="n">cnt</span><span class="p">][</span><span class="mi">1</span><span class="p">],</span> <span class="n">data</span><span class="p">[</span><span class="n">cnt</span><span class="p">][</span><span class="mi">2</span><span class="p">],</span> <span class="n">lim</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="n">flag</span><span class="p">)</span>
<span class="n">puts</span><span class="p">(</span><span class="s">"Yes"</span><span class="p">);</span>
<span class="k">else</span>
<span class="n">puts</span><span class="p">(</span><span class="s">"No"</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
<span class="kt">bool</span> <span class="nf">bfs</span><span class="p">(</span><span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">y</span><span class="p">,</span> <span class="kt">int</span> <span class="n">z</span><span class="p">,</span> <span class="kt">int</span> <span class="n">lim</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">queue</span><span class="o"><</span><span class="n">State</span><span class="o">></span> <span class="o">*</span><span class="n">que_ptr</span> <span class="o">=</span> <span class="k">new</span> <span class="n">queue</span><span class="o"><</span><span class="n">State</span><span class="o">></span><span class="p">();</span>
<span class="n">queue</span><span class="o"><</span><span class="n">State</span><span class="o">></span> <span class="o">&</span><span class="n">que</span> <span class="o">=</span> <span class="o">*</span><span class="n">que_ptr</span><span class="p">;</span>
<span class="n">que</span><span class="p">.</span><span class="n">push</span><span class="p">(</span><span class="n">State</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">z</span><span class="p">));</span>
<span class="k">const</span> <span class="kt">int</span> <span class="n">value</span> <span class="o">=</span> <span class="n">cube</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="n">y</span><span class="p">][</span><span class="n">z</span><span class="p">];</span>
<span class="n">cube</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="n">y</span><span class="p">][</span><span class="n">z</span><span class="p">]</span> <span class="o">=</span> <span class="n">OUTER</span><span class="p">;</span>
<span class="n">vis</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="n">y</span><span class="p">][</span><span class="n">z</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span><span class="p">;</span>
<span class="kt">bool</span> <span class="n">ret</span> <span class="o">=</span> <span class="nb">false</span><span class="p">;</span>
<span class="n">State</span> <span class="n">now</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">;</span>
<span class="k">while</span> <span class="p">(</span><span class="o">!</span><span class="n">que</span><span class="p">.</span><span class="n">empty</span><span class="p">())</span>
<span class="p">{</span>
<span class="n">now</span> <span class="o">=</span> <span class="n">que</span><span class="p">.</span><span class="n">front</span><span class="p">();</span>
<span class="n">que</span><span class="p">.</span><span class="n">pop</span><span class="p">();</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">now</span><span class="p">.</span><span class="n">x</span><span class="p">;</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">now</span><span class="p">.</span><span class="n">y</span><span class="p">;</span>
<span class="n">z</span> <span class="o">=</span> <span class="n">now</span><span class="p">.</span><span class="n">z</span><span class="p">;</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="mi">6</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">a</span> <span class="o">=</span> <span class="n">x</span> <span class="o">+</span> <span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
<span class="n">b</span> <span class="o">=</span> <span class="n">y</span> <span class="o">+</span> <span class="n">dy</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
<span class="n">c</span> <span class="o">=</span> <span class="n">z</span> <span class="o">+</span> <span class="n">dz</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="n">a</span> <span class="o"><</span> <span class="mi">0</span> <span class="o">||</span> <span class="n">b</span> <span class="o"><</span> <span class="mi">0</span> <span class="o">||</span> <span class="n">c</span> <span class="o"><</span> <span class="mi">1</span> <span class="o">||</span> <span class="n">a</span> <span class="o">></span> <span class="n">lim</span> <span class="o">||</span> <span class="n">b</span> <span class="o">></span> <span class="n">lim</span> <span class="o">||</span> <span class="n">c</span> <span class="o">></span> <span class="n">lim</span><span class="p">)</span>
<span class="k">continue</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">vis</span><span class="p">[</span><span class="n">a</span><span class="p">][</span><span class="n">b</span><span class="p">][</span><span class="n">c</span><span class="p">]</span> <span class="o">!=</span> <span class="n">value</span> <span class="o">&&</span> <span class="n">cube</span><span class="p">[</span><span class="n">a</span><span class="p">][</span><span class="n">b</span><span class="p">][</span><span class="n">c</span><span class="p">]</span> <span class="o">==</span> <span class="n">OUTER</span><span class="p">)</span>
<span class="n">ret</span> <span class="o">=</span> <span class="nb">true</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">vis</span><span class="p">[</span><span class="n">a</span><span class="p">][</span><span class="n">b</span><span class="p">][</span><span class="n">c</span><span class="p">]</span> <span class="o">||</span> <span class="n">cube</span><span class="p">[</span><span class="n">a</span><span class="p">][</span><span class="n">b</span><span class="p">][</span><span class="n">c</span><span class="p">])</span>
<span class="k">continue</span><span class="p">;</span>
<span class="n">vis</span><span class="p">[</span><span class="n">a</span><span class="p">][</span><span class="n">b</span><span class="p">][</span><span class="n">c</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span><span class="p">;</span>
<span class="n">cube</span><span class="p">[</span><span class="n">a</span><span class="p">][</span><span class="n">b</span><span class="p">][</span><span class="n">c</span><span class="p">]</span> <span class="o">=</span> <span class="n">OUTER</span><span class="p">;</span>
<span class="n">que</span><span class="p">.</span><span class="n">push</span><span class="p">(</span><span class="n">State</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">));</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">delete</span> <span class="n">que_ptr</span><span class="p">;</span>
<span class="k">return</span> <span class="n">ret</span><span class="p">;</span>
<span class="p">}</span>
<span class="cm">/**
5
3
1 1 1
1 2 1
1 3 2
17
1 1 1
1 2 1
1 3 1
2 3 1
3 3 1
3 2 1
3 1 1
2 1 1
2 1 2
1 1 2
1 2 2
1 3 2
2 3 2
3 3 2
3 2 2
2 2 2
2 2 1
**/</span>
</code></pre></div></div>2016年微软校园招聘在线笔试第四题,用BFS就可解,不过要变通下Hihocoder 1290 Demo Day2016-04-07T00:00:00+00:002016-04-07T00:00:00+00:00http:imkean.com/Hihocoder-1290-Demo-Day<ul id="toc_of_keans_blog">
<li><a href="#描述" id="toc_of_keans_blog-描述">描述</a></li>
<li><a href="#输入" id="toc_of_keans_blog-输入">输入</a></li>
<li><a href="#输出" id="toc_of_keans_blog-输出">输出</a></li>
<li><a href="#解题思路" id="toc_of_keans_blog-解题思路">解题思路</a></li>
<li><a href="#spfa-1" id="toc_of_keans_blog-spfa-1">SPFA-1</a></li>
<li><a href="#spfa-2" id="toc_of_keans_blog-spfa-2">SPFA-2</a></li>
</ul>
<p>时间限制:10000ms
单点时限:1000ms
内存限制:256MB</p>
<h2 id="描述">描述</h2>
<p>You work as an intern at a robotics startup. Today is your company’s demo day. During the demo your company’s robot will be put in a maze and without any information about the maze, it should be able to find a way out.</p>
<p>The maze consists of N * M grids. Each grid is either empty(represented by ‘.’) or blocked by an obstacle(represented by ‘b’). The robot will be release at the top left corner and the exit is at the bottom right corner.</p>
<p>Unfortunately some sensors on the robot go crazy just before the demo starts. As a result, the robot can only repeats two operations alternatively: keep moving to the right until it can’t and keep moving to the bottom until it can’t. At the beginning, the robot keeps moving to the right.</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>rrrrbb..
...r.... ====> The robot route with broken sensors is marked by 'r'.
...rrb..
...bb...
</code></pre></div></div>
<p>While the FTEs(full-time employees) are busy working on the sensors, you try to save the demo day by rearranging the maze in such a way that even with the broken sensors the robot can reach the exit successfully. You can change a grid from empty to blocked and vice versa. So as not to arouse suspision, you want to change as few grids as possible. What is the mininum number?</p>
<h2 id="输入">输入</h2>
<p>Line 1: N, M.
Line 2-N+1: the N * M maze.
For 20% of the data, N * M <= 16.
For 50% of the data, 1 <= N, M <= 8.
For 100% of the data, 1<= N, M <= 100.</p>
<h2 id="输出">输出</h2>
<p>The minimum number of grids to be changed.</p>
<p><strong>样例输入</strong></p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>4 8
....bb..
........
.....b..
...bb...
</code></pre></div></div>
<p><strong>样例输出</strong></p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>1
</code></pre></div></div>
<h2 id="解题思路">解题思路</h2>
<blockquote>
<p>主要是dp和SPFA</p>
</blockquote>
<h2 id="spfa-1">SPFA-1</h2>
<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#include <stdio.h>
#include <queue>
#include <string.h>
</span>
<span class="k">using</span> <span class="n">std</span><span class="o">::</span><span class="n">priority_queue</span><span class="p">;</span>
<span class="k">const</span> <span class="kt">int</span> <span class="n">RIGHT</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="k">const</span> <span class="kt">int</span> <span class="n">DOWN</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
<span class="k">struct</span> <span class="n">State</span> <span class="p">{</span>
<span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">cost</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">dir</span><span class="p">;</span>
<span class="n">State</span><span class="p">(</span><span class="kt">int</span> <span class="n">_x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">_y</span><span class="p">,</span> <span class="kt">int</span> <span class="n">l</span><span class="p">,</span> <span class="kt">int</span> <span class="n">d</span><span class="p">)</span> <span class="o">:</span> <span class="n">x</span><span class="p">(</span><span class="n">_x</span><span class="p">),</span> <span class="n">y</span><span class="p">(</span><span class="n">_y</span><span class="p">),</span> <span class="n">cost</span><span class="p">(</span><span class="n">l</span><span class="p">),</span> <span class="n">dir</span><span class="p">(</span><span class="n">d</span><span class="p">)</span>
<span class="p">{</span> <span class="p">}</span>
<span class="n">State</span><span class="p">()</span> <span class="o">:</span> <span class="n">x</span><span class="p">(</span><span class="mi">0</span><span class="p">),</span> <span class="n">y</span><span class="p">(</span><span class="mi">0</span><span class="p">),</span> <span class="n">cost</span><span class="p">(</span><span class="mi">0</span><span class="p">),</span> <span class="n">dir</span><span class="p">(</span><span class="n">RIGHT</span><span class="p">)</span>
<span class="p">{</span> <span class="p">}</span>
<span class="kt">bool</span> <span class="k">operator</span><span class="o"><</span><span class="p">(</span><span class="k">const</span> <span class="n">State</span> <span class="o">&</span><span class="n">arg</span><span class="p">)</span> <span class="k">const</span>
<span class="p">{</span>
<span class="k">return</span> <span class="k">this</span><span class="o">-></span><span class="n">cost</span> <span class="o">></span> <span class="n">arg</span><span class="p">.</span><span class="n">cost</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">};</span>
<span class="k">const</span> <span class="kt">int</span> <span class="n">MAXN</span> <span class="o">=</span> <span class="p">(</span><span class="mi">100</span> <span class="o">+</span> <span class="mi">5</span><span class="p">);</span>
<span class="kt">char</span> <span class="n">maze</span><span class="p">[</span><span class="n">MAXN</span><span class="p">][</span><span class="n">MAXN</span><span class="p">];</span>
<span class="kt">int</span> <span class="n">vis</span><span class="p">[</span><span class="n">MAXN</span><span class="p">][</span><span class="n">MAXN</span><span class="p">][</span><span class="mi">2</span><span class="p">];</span>
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
<span class="kt">int</span> <span class="n">n</span><span class="p">,</span> <span class="n">m</span><span class="p">;</span>
<span class="n">scanf</span><span class="p">(</span><span class="s">"%d%d"</span><span class="p">,</span> <span class="o">&</span><span class="n">n</span><span class="p">,</span> <span class="o">&</span><span class="n">m</span><span class="p">);</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
<span class="n">scanf</span><span class="p">(</span><span class="s">"%s"</span><span class="p">,</span> <span class="n">maze</span><span class="p">[</span><span class="n">i</span><span class="p">]);</span>
<span class="n">memset</span><span class="p">(</span><span class="n">vis</span><span class="p">,</span> <span class="mh">0x3f</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">vis</span><span class="p">));</span>
<span class="n">priority_queue</span><span class="o"><</span><span class="n">State</span><span class="o">></span> <span class="n">que</span><span class="p">;</span>
<span class="n">que</span><span class="p">.</span><span class="n">push</span><span class="p">(</span><span class="n">State</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">RIGHT</span><span class="p">));</span>
<span class="n">State</span> <span class="n">now</span><span class="p">,</span> <span class="n">down</span><span class="p">,</span> <span class="n">right</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">;</span>
<span class="k">while</span> <span class="p">(</span><span class="o">!</span><span class="n">que</span><span class="p">.</span><span class="n">empty</span><span class="p">())</span>
<span class="p">{</span>
<span class="n">now</span> <span class="o">=</span> <span class="n">que</span><span class="p">.</span><span class="n">top</span><span class="p">();</span>
<span class="n">que</span><span class="p">.</span><span class="n">pop</span><span class="p">();</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">now</span><span class="p">.</span><span class="n">x</span><span class="p">;</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">now</span><span class="p">.</span><span class="n">y</span><span class="p">;</span>
<span class="c1">//printf("%d %d %d\n",x,y,now.cost);
</span> <span class="k">if</span> <span class="p">(</span><span class="n">x</span> <span class="o">==</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">&&</span> <span class="n">y</span> <span class="o">==</span> <span class="n">m</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">printf</span><span class="p">(</span><span class="s">"%d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="n">now</span><span class="p">.</span><span class="n">cost</span><span class="p">);</span>
<span class="k">break</span><span class="p">;</span>
<span class="p">}</span>
<span class="n">down</span> <span class="o">=</span> <span class="n">now</span><span class="p">;</span>
<span class="n">down</span><span class="p">.</span><span class="n">dir</span> <span class="o">=</span> <span class="n">DOWN</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">x</span> <span class="o">+</span> <span class="mi">1</span> <span class="o"><</span> <span class="n">n</span><span class="p">)</span><span class="c1">//down
</span> <span class="p">{</span>
<span class="c1">// if(y+1 < m && maze[x][y+1] != 'b' && now.dir == RIGHT)
</span> <span class="k">if</span> <span class="p">(</span><span class="n">y</span> <span class="o">+</span> <span class="mi">1</span> <span class="o"><</span> <span class="n">m</span> <span class="o">&&</span> <span class="n">maze</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="n">y</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="sc">'.'</span> <span class="o">&&</span> <span class="n">now</span><span class="p">.</span><span class="n">dir</span> <span class="o">==</span> <span class="n">RIGHT</span><span class="p">)</span>
<span class="n">down</span><span class="p">.</span><span class="n">cost</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">;</span>
<span class="n">down</span><span class="p">.</span><span class="n">x</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">maze</span><span class="p">[</span><span class="n">x</span> <span class="o">+</span> <span class="mi">1</span><span class="p">][</span><span class="n">y</span><span class="p">]</span> <span class="o">==</span> <span class="sc">'b'</span><span class="p">)</span>
<span class="n">down</span><span class="p">.</span><span class="n">cost</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">down</span><span class="p">.</span><span class="n">cost</span> <span class="o"><</span> <span class="n">vis</span><span class="p">[</span><span class="n">down</span><span class="p">.</span><span class="n">x</span><span class="p">][</span><span class="n">down</span><span class="p">.</span><span class="n">y</span><span class="p">][</span><span class="n">DOWN</span><span class="p">])</span>
<span class="p">{</span>
<span class="n">que</span><span class="p">.</span><span class="n">push</span><span class="p">(</span><span class="n">down</span><span class="p">);</span>
<span class="n">vis</span><span class="p">[</span><span class="n">down</span><span class="p">.</span><span class="n">x</span><span class="p">][</span><span class="n">down</span><span class="p">.</span><span class="n">y</span><span class="p">][</span><span class="n">DOWN</span><span class="p">]</span> <span class="o">=</span> <span class="n">down</span><span class="p">.</span><span class="n">cost</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="n">right</span> <span class="o">=</span> <span class="n">now</span><span class="p">;</span>
<span class="n">right</span><span class="p">.</span><span class="n">dir</span> <span class="o">=</span> <span class="n">RIGHT</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">y</span> <span class="o">+</span> <span class="mi">1</span> <span class="o"><</span> <span class="n">m</span><span class="p">)</span> <span class="c1">//right
</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="n">x</span> <span class="o">+</span> <span class="mi">1</span> <span class="o"><</span> <span class="n">n</span> <span class="o">&&</span> <span class="n">maze</span><span class="p">[</span><span class="n">x</span> <span class="o">+</span> <span class="mi">1</span><span class="p">][</span><span class="n">y</span><span class="p">]</span> <span class="o">==</span> <span class="sc">'.'</span> <span class="o">&&</span> <span class="n">now</span><span class="p">.</span><span class="n">dir</span> <span class="o">==</span> <span class="n">DOWN</span><span class="p">)</span>
<span class="n">right</span><span class="p">.</span><span class="n">cost</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">maze</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="n">y</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="sc">'b'</span><span class="p">)</span>
<span class="n">right</span><span class="p">.</span><span class="n">cost</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">;</span>
<span class="n">right</span><span class="p">.</span><span class="n">y</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">right</span><span class="p">.</span><span class="n">cost</span> <span class="o"><</span> <span class="n">vis</span><span class="p">[</span><span class="n">right</span><span class="p">.</span><span class="n">x</span><span class="p">][</span><span class="n">right</span><span class="p">.</span><span class="n">y</span><span class="p">][</span><span class="n">RIGHT</span><span class="p">])</span>
<span class="p">{</span>
<span class="n">que</span><span class="p">.</span><span class="n">push</span><span class="p">(</span><span class="n">right</span><span class="p">);</span>
<span class="n">vis</span><span class="p">[</span><span class="n">right</span><span class="p">.</span><span class="n">x</span><span class="p">][</span><span class="n">right</span><span class="p">.</span><span class="n">y</span><span class="p">][</span><span class="n">RIGHT</span><span class="p">]</span> <span class="o">=</span> <span class="n">right</span><span class="p">.</span><span class="n">cost</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
<span class="cm">/*
4 8
....bb..
........
.....b..
...bb...
4 8
.b..bb..
..b.....
b..b.b..
.b..bb..
4 8
.b..bb..
..b..b..
b..b.b..
.b..bb..
*/</span>
</code></pre></div></div>
<h2 id="spfa-2">SPFA-2</h2>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cpp
#include<cstdio>
#include<algorithm>
// using namespace std;
#define R 105
#define N 40010
#define M 400000
const int inf = 1000000;
#define rep(i, n) for (int i=1;i<=n;++i)
#define fr(i, x, y) for (int i=x;i<=y;++i)
int son[N];
int st[M], ed[M], next[M], cost[M];
int d[N];
int f[N * 20];
int S, T, l;
bool b[N], v[N];
int id[R][R], idd;
char s[R][R];
int n, m;
void add(int x, int y, int z, int c)
{
st[l] = x, ed[l] = y, cost[l] = c, next[l] = son[x], son[x] = l;
l++;
}
void spfa()
{
int h = 0, t = 1;
rep(i, T + 1) d[i - 1] = inf;
d[f[1] = S] = 0;
while (h < t)
{
int x = f[++h];
b[x] = 0;
for (int p = son[x]; p; p = next[p])
{
int y = ed[p];
if (d[x] + cost[p] < d[y])
{
d[y] = d[x] + cost[p];
if (!b[y]) b[y] = 1, f[++t] = y;
}
}
}
}
void work1()
{
rep(i, T + 1) son[i - 1] = 0;
l = 2;
S = idd * 4;
T = S + 1;
add(S, id[1][1] * 4 + (s[1][1] == '.' ? 0 : 2), 1, 0);
add(id[n][m] * 4 + 0, T, 1, 0);
add(id[n][m] * 4 + 1, T, 1, 0);
fr(i, 1, n)
fr(j, 1, m)
{
add(id[i][j] * 4 + 0, id[i][j] * 4 + 2, 1, 1),
add(id[i][j] * 4 + 1, id[i][j] * 4 + 3, 1, 1),
add(id[i][j] * 4 + 2, id[i][j] * 4 + 0, 1, 1),
add(id[i][j] * 4 + 3, id[i][j] * 4 + 1, 1, 1);
}
fr(i, 1, n)
fr(j, 1, m - 1)
{
add(id[i][j] * 4 + 0, id[i][j + 1] * 4 + (s[i][j + 1] == '.' ? 0 : 2), 1, 0);
if (i > 1)add(id[i][j] * 4 + 3, id[i - 1][j + 1] * 4 + (s[i - 1][j + 1] == '.' ? 0 : 2), 1, 0);
}
fr(i, 1, n - 1)
fr(j, 1, m)
{
add(id[i][j] * 4 + 1, id[i + 1][j] * 4 + (s[i + 1][j] == '.' ? 1 : 3), 1, 0);
if (j > 1) add(id[i][j] * 4 + 2, id[i + 1][j - 1] * 4 + (s[i + 1][j - 1] == '.' ? 1 : 3), 1, 0);
}
fr(i, 1, n)
fr(j, m, m)
{
add(id[i][j] * 4 + 0, id[i][j] * 4 + 1, 1, 0);
//add(id[i][j]*4+1,id[i][j]*4+0,1,0);
}
fr(i, n, n)
fr(j, 1, m)
{
//add(id[i][j]*4+0,id[i][j]*4+1,1,0);
add(id[i][j] * 4 + 1, id[i][j] * 4 + 0, 1, 0);
}
spfa();
printf("%d\n", d[T]);
}
int main()
{
scanf("%d%d", &n, &m);
fr(i, 1, n)
scanf("%s", s[i] + 1);
idd = 0;
fr(i, 1, n)
fr(j, 1, m)
{
id[i][j] = idd++;
}
work1();
}
/*
4 8
....bb..
........
.....b..
...bb...
*/
</code></pre></div></div>
<blockquote>
<p>致谢CHM童鞋</p>
</blockquote>2016年微软校园招聘在线笔试第一题,使用DP或者SPFA均可解Hihocoder 1289 403 Forbidden2016-04-07T00:00:00+00:002016-04-07T00:00:00+00:00http:imkean.com/Hihocoder-1289-403-Forbidden<ul id="toc_of_keans_blog">
<li><a href="#描述" id="toc_of_keans_blog-描述">描述</a></li>
<li><a href="#输入" id="toc_of_keans_blog-输入">输入</a></li>
<li><a href="#输出" id="toc_of_keans_blog-输出">输出</a></li>
<li><a href="#样例输入" id="toc_of_keans_blog-样例输入">样例输入</a></li>
<li><a href="#样例输出" id="toc_of_keans_blog-样例输出">样例输出</a></li>
<li><a href="#解题思路" id="toc_of_keans_blog-解题思路">解题思路</a></li>
<li><a href="#二叉树版不算严格的tire树" id="toc_of_keans_blog-二叉树版不算严格的tire树">二叉树版(不算严格的Tire树)</a></li>
<li><a href="#map版" id="toc_of_keans_blog-map版">map版</a></li>
</ul>
<p>时间限制:10000ms
单点时限:1000ms
内存限制:256MB</p>
<h2 id="描述">描述</h2>
<p>Little Hi runs a web server. Sometimes he has to deny access from a certain set of malicious IP addresses while his friends are still allow to access his server. To do this he writes N rules in the configuration file which look like:</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>allow 1.2.3.4/30
deny 1.1.1.1
allow 127.0.0.1
allow 123.234.12.23/3
deny 0.0.0.0/0
</code></pre></div></div>
<p>Each rule is in the form:
allow | deny address or allow | deny address/mask.</p>
<p>When there comes a request, the rules are checked in sequence until the first match is found. If no rule is matched the request will be allowed. Rule and request are matched if the request address is the same as the rule address or they share the same first mask digits when both written as 32bit binary number.</p>
<p>For example IP “1.2.3.4” matches rule “allow 1.2.3.4” because the addresses are the same. And IP “128.127.8.125” matches rule “deny 128.127.4.100/20” because 10000000011111110000010001100100 (128.127.4.100 as binary number) shares the first 20 (mask) digits with 10000000011111110000100001111101 (128.127.8.125 as binary number).</p>
<p>Now comes M access requests. Given their IP addresses, your task is to find out which ones are allowed and which ones are denied.</p>
<h2 id="输入">输入</h2>
<p>Line 1: two integers N and M.
Line 2-N+1: one rule on each line.
Line N+2-N+M+1: one IP address on each line.
All addresses are IPv4 addresses(0.0.0.0 - 255.255.255.255). 0 <= mask <= 32.</p>
<p>For 40% of the data: <script type="math/tex">% <![CDATA[
1 <= N, M <= 1000 %]]></script>.
For 100% of the data: <script type="math/tex">% <![CDATA[
1 <= N, M <= 100000 %]]></script>.</p>
<h2 id="输出">输出</h2>
<p>For each request output “YES” or “NO” according to whether it is allowed.</p>
<h2 id="样例输入">样例输入</h2>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>5 5
allow 1.2.3.4/30
deny 1.1.1.1
allow 127.0.0.1
allow 123.234.12.23/3
deny 0.0.0.0/0
1.2.3.4
1.2.3.5
1.1.1.1
100.100.100.100
219.142.53.100
</code></pre></div></div>
<h2 id="样例输出">样例输出</h2>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>YES
YES
NO
YES
NO
</code></pre></div></div>
<h2 id="解题思路">解题思路</h2>
<blockquote>
<p>普通青年用Tire树,也可以用map</p>
</blockquote>
<h2 id="二叉树版不算严格的tire树">二叉树版(不算严格的Tire树)</h2>
<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#include <stdio.h>
#include <string.h>
</span>
<span class="cp">#define INDEX(i) data[i].left
</span>
<span class="cp">#define ALLOW(i, msk) (infos[INDEX(i)][msk][0])
#define ID(i, msk) (infos[INDEX(i)][msk][1])
</span>
<span class="k">struct</span> <span class="n">Node</span> <span class="p">{</span>
<span class="kt">int</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">;</span>
<span class="n">Node</span><span class="p">()</span> <span class="o">:</span> <span class="n">left</span><span class="p">(</span><span class="mi">0</span><span class="p">),</span> <span class="n">right</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<span class="p">{</span> <span class="p">};</span>
<span class="n">Node</span><span class="p">(</span><span class="kt">int</span> <span class="n">l</span><span class="p">,</span> <span class="kt">int</span> <span class="n">r</span><span class="p">)</span> <span class="o">:</span> <span class="n">left</span><span class="p">(</span><span class="n">l</span><span class="p">),</span> <span class="n">right</span><span class="p">(</span><span class="n">r</span><span class="p">)</span>
<span class="p">{</span> <span class="p">}</span>
<span class="p">};</span>
<span class="k">const</span> <span class="kt">int</span> <span class="n">MAXN</span> <span class="o">=</span> <span class="mi">100000</span> <span class="o">*</span> <span class="mi">40</span><span class="p">;</span>
<span class="n">Node</span> <span class="n">data</span><span class="p">[</span><span class="n">MAXN</span><span class="p">];</span>
<span class="kt">int</span> <span class="n">infos</span><span class="p">[(</span><span class="mi">1</span> <span class="o"><<</span> <span class="mi">17</span><span class="p">)][</span><span class="mi">33</span><span class="p">][</span><span class="mi">2</span><span class="p">];</span>
<span class="kt">int</span> <span class="n">icnt</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">cnt</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
<span class="kt">void</span> <span class="nf">add_node</span><span class="p">(</span><span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">ip</span><span class="p">,</span> <span class="kt">int</span> <span class="n">allow</span><span class="p">,</span> <span class="kt">int</span> <span class="n">id</span><span class="p">,</span> <span class="kt">int</span> <span class="n">msk</span><span class="p">)</span>
<span class="p">{</span>
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">mask</span> <span class="o">=</span> <span class="mh">0x80000000</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">root</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="k">while</span> <span class="p">(</span><span class="n">mask</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="n">ip</span> <span class="o">&</span> <span class="n">mask</span><span class="p">)</span><span class="c1">// 1
</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">root</span><span class="p">].</span><span class="n">right</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span>
<span class="n">data</span><span class="p">[</span><span class="n">root</span><span class="p">].</span><span class="n">right</span> <span class="o">=</span> <span class="n">cnt</span><span class="o">++</span><span class="p">;</span>
<span class="n">root</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">root</span><span class="p">].</span><span class="n">right</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">else</span> <span class="c1">// 0
</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">root</span><span class="p">].</span><span class="n">left</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span>
<span class="n">data</span><span class="p">[</span><span class="n">root</span><span class="p">].</span><span class="n">left</span> <span class="o">=</span> <span class="n">cnt</span><span class="o">++</span><span class="p">;</span>
<span class="n">root</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">root</span><span class="p">].</span><span class="n">left</span><span class="p">;</span>
<span class="p">}</span>
<span class="n">mask</span> <span class="o">>>=</span> <span class="mi">1</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">INDEX</span><span class="p">(</span><span class="n">root</span><span class="p">))</span>
<span class="n">INDEX</span><span class="p">(</span><span class="n">root</span><span class="p">)</span> <span class="o">=</span> <span class="n">icnt</span><span class="o">++</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">ID</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">msk</span><span class="p">))</span>
<span class="p">{</span>
<span class="n">ID</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">msk</span><span class="p">)</span> <span class="o">=</span> <span class="n">id</span><span class="p">;</span>
<span class="n">ALLOW</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">msk</span><span class="p">)</span> <span class="o">=</span> <span class="n">allow</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="kt">int</span> <span class="nf">find_node</span><span class="p">(</span><span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">ip</span><span class="p">,</span> <span class="kt">int</span> <span class="n">msk</span><span class="p">)</span>
<span class="p">{</span>
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">mask</span> <span class="o">=</span> <span class="mh">0x80000000</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">root</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="k">while</span> <span class="p">(</span><span class="n">mask</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="n">ip</span> <span class="o">&</span> <span class="n">mask</span><span class="p">)</span><span class="c1">// 1
</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">root</span><span class="p">].</span><span class="n">right</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span>
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="n">root</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">root</span><span class="p">].</span><span class="n">right</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">else</span>
<span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">root</span><span class="p">].</span><span class="n">left</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span>
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="n">root</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">root</span><span class="p">].</span><span class="n">left</span><span class="p">;</span>
<span class="p">}</span>
<span class="n">mask</span> <span class="o">>>=</span> <span class="mi">1</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">return</span> <span class="n">root</span><span class="p">;</span>
<span class="p">}</span>
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">mask</span><span class="p">[</span><span class="mi">33</span><span class="p">];</span>
<span class="n">mask</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="mh">0xffffffff</span><span class="p">;</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="mi">33</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
<span class="n">mask</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">mask</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o"><<</span> <span class="mi">1</span><span class="p">;</span>
<span class="n">memset</span><span class="p">(</span><span class="n">infos</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">infos</span><span class="p">));</span>
<span class="kt">int</span> <span class="n">m</span><span class="p">,</span> <span class="n">n</span><span class="p">;</span>
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">tmp</span><span class="p">,</span> <span class="n">ans</span><span class="p">;</span>
<span class="kt">char</span> <span class="n">str</span><span class="p">[</span><span class="mi">50</span><span class="p">],</span> <span class="n">ip</span><span class="p">[</span><span class="mi">50</span><span class="p">];</span>
<span class="n">scanf</span><span class="p">(</span><span class="s">"%d%d"</span><span class="p">,</span> <span class="o">&</span><span class="n">n</span><span class="p">,</span> <span class="o">&</span><span class="n">m</span><span class="p">);</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o"><</span> <span class="n">n</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">scanf</span><span class="p">(</span><span class="s">"%s%s"</span><span class="p">,</span> <span class="n">str</span><span class="p">,</span> <span class="n">ip</span><span class="p">);</span>
<span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="n">ans</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="k">for</span> <span class="p">(;</span> <span class="n">ip</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">!=</span> <span class="sc">'/'</span> <span class="o">&&</span> <span class="n">ip</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">!=</span> <span class="sc">'\0'</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
<span class="k">if</span> <span class="p">(</span><span class="n">ip</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="sc">'.'</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">ans</span> <span class="o">=</span> <span class="p">(</span><span class="n">ans</span> <span class="o"><<</span> <span class="mi">8</span><span class="p">)</span> <span class="o">|</span> <span class="n">tmp</span><span class="p">;</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">else</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="n">tmp</span> <span class="o">*</span> <span class="mi">10</span> <span class="o">+</span> <span class="n">ip</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">-</span> <span class="sc">'0'</span><span class="p">;</span>
<span class="n">ans</span> <span class="o">=</span> <span class="p">(</span><span class="n">ans</span> <span class="o"><<</span> <span class="mi">8</span><span class="p">)</span> <span class="o">|</span> <span class="n">tmp</span><span class="p">;</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="mi">32</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">ip</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="sc">'/'</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="k">for</span> <span class="p">(</span><span class="n">i</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">ip</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">!=</span> <span class="sc">'\0'</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="n">tmp</span> <span class="o">*</span> <span class="mi">10</span> <span class="o">+</span> <span class="n">ip</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">-</span> <span class="sc">'0'</span><span class="p">;</span>
<span class="n">ans</span> <span class="o">=</span> <span class="n">ans</span> <span class="o">&</span> <span class="n">mask</span><span class="p">[</span><span class="mi">32</span> <span class="o">-</span> <span class="n">tmp</span><span class="p">];</span>
<span class="p">}</span>
<span class="n">add_node</span><span class="p">(</span><span class="n">ans</span><span class="p">,</span> <span class="n">str</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="sc">'a'</span><span class="p">,</span> <span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">tmp</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="n">m</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">scanf</span><span class="p">(</span><span class="s">"%s"</span><span class="p">,</span> <span class="n">ip</span><span class="p">);</span>
<span class="n">ans</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">ip</span><span class="p">[</span><span class="n">j</span><span class="p">]</span> <span class="o">!=</span> <span class="sc">'\0'</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
<span class="k">if</span> <span class="p">(</span><span class="n">ip</span><span class="p">[</span><span class="n">j</span><span class="p">]</span> <span class="o">==</span> <span class="sc">'.'</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">ans</span> <span class="o">=</span> <span class="p">(</span><span class="n">ans</span> <span class="o"><<</span> <span class="mi">8</span><span class="p">)</span> <span class="o">|</span> <span class="n">tmp</span><span class="p">;</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">else</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="n">tmp</span> <span class="o">*</span> <span class="mi">10</span> <span class="o">+</span> <span class="n">ip</span><span class="p">[</span><span class="n">j</span><span class="p">]</span> <span class="o">-</span> <span class="sc">'0'</span><span class="p">;</span>
<span class="n">ans</span> <span class="o">=</span> <span class="p">(</span><span class="n">ans</span> <span class="o"><<</span> <span class="mi">8</span><span class="p">)</span> <span class="o">|</span> <span class="n">tmp</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">index</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">id</span> <span class="o">=</span> <span class="n">MAXN</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">mk</span> <span class="o">=</span> <span class="mi">32</span><span class="p">;</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o"><</span> <span class="mi">33</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="n">ans</span> <span class="o">&</span> <span class="n">mask</span><span class="p">[</span><span class="n">j</span><span class="p">];</span>
<span class="kt">int</span> <span class="n">t</span> <span class="o">=</span> <span class="n">find_node</span><span class="p">(</span><span class="n">tmp</span><span class="p">,</span> <span class="mi">32</span> <span class="o">-</span> <span class="n">j</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="n">t</span> <span class="o">&&</span> <span class="n">ID</span><span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="mi">32</span> <span class="o">-</span> <span class="n">j</span><span class="p">)</span> <span class="o">&&</span> <span class="n">ID</span><span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="mi">32</span> <span class="o">-</span> <span class="n">j</span><span class="p">)</span> <span class="o"><</span> <span class="n">id</span><span class="p">)</span>
<span class="n">index</span> <span class="o">=</span> <span class="n">t</span><span class="p">,</span> <span class="n">id</span> <span class="o">=</span> <span class="n">ID</span><span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="mi">32</span> <span class="o">-</span> <span class="n">j</span><span class="p">),</span> <span class="n">mk</span> <span class="o">=</span> <span class="mi">32</span> <span class="o">-</span> <span class="n">j</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">index</span> <span class="o">||</span> <span class="n">ALLOW</span><span class="p">(</span><span class="n">index</span><span class="p">,</span> <span class="n">mk</span><span class="p">))</span>
<span class="n">puts</span><span class="p">(</span><span class="s">"YES"</span><span class="p">);</span>
<span class="k">else</span>
<span class="n">puts</span><span class="p">(</span><span class="s">"NO"</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
<span class="cm">/***
5 5
deny 0.0.0.0
allow 0.0.0.1/28
allow 0.0.0.255/28
allow 0.0.0.0
deny 0.0.0.0/24
1.2.3.4
1.2.3.5
1.1.1.1
0.0.0.1
0.0.0.0
***/</span>
</code></pre></div></div>
<h2 id="map版">map版</h2>
<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="cp">#include <stdio.h>
#include <map>
</span>
<span class="k">using</span> <span class="n">std</span><span class="o">::</span><span class="n">map</span><span class="p">;</span>
<span class="n">map</span><span class="o"><</span><span class="kt">long</span> <span class="kt">long</span><span class="p">,</span> <span class="kt">int</span><span class="o">></span> <span class="n">dat</span><span class="p">;</span>
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">mask</span><span class="p">[</span><span class="mi">33</span><span class="p">];</span>
<span class="n">mask</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="mh">0xffffffff</span><span class="p">;</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="mi">33</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
<span class="n">mask</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">mask</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o"><<</span> <span class="mi">1</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">m</span><span class="p">,</span> <span class="n">n</span><span class="p">;</span>
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">tmp</span><span class="p">,</span> <span class="n">ans</span><span class="p">;</span>
<span class="kt">char</span> <span class="n">str</span><span class="p">[</span><span class="mi">50</span><span class="p">],</span> <span class="n">ip</span><span class="p">[</span><span class="mi">50</span><span class="p">];</span>
<span class="n">scanf</span><span class="p">(</span><span class="s">"%d%d"</span><span class="p">,</span> <span class="o">&</span><span class="n">n</span><span class="p">,</span> <span class="o">&</span><span class="n">m</span><span class="p">);</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o"><</span> <span class="n">n</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">scanf</span><span class="p">(</span><span class="s">"%s%s"</span><span class="p">,</span> <span class="n">str</span><span class="p">,</span> <span class="n">ip</span><span class="p">);</span>
<span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="n">ans</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="k">for</span> <span class="p">(;</span> <span class="n">ip</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">!=</span> <span class="sc">'/'</span> <span class="o">&&</span> <span class="n">ip</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">!=</span> <span class="sc">'\0'</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
<span class="k">if</span> <span class="p">(</span><span class="n">ip</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="sc">'.'</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">ans</span> <span class="o">=</span> <span class="p">(</span><span class="n">ans</span> <span class="o"><<</span> <span class="mi">8</span><span class="p">)</span> <span class="o">|</span> <span class="n">tmp</span><span class="p">;</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">else</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="n">tmp</span> <span class="o">*</span> <span class="mi">10</span> <span class="o">+</span> <span class="n">ip</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">-</span> <span class="sc">'0'</span><span class="p">;</span>
<span class="n">ans</span> <span class="o">=</span> <span class="p">(</span><span class="n">ans</span> <span class="o"><<</span> <span class="mi">8</span><span class="p">)</span> <span class="o">|</span> <span class="n">tmp</span><span class="p">;</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="mi">32</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">ip</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="sc">'/'</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="k">for</span> <span class="p">(</span><span class="n">i</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">ip</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">!=</span> <span class="sc">'\0'</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="n">tmp</span> <span class="o">*</span> <span class="mi">10</span> <span class="o">+</span> <span class="n">ip</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">-</span> <span class="sc">'0'</span><span class="p">;</span>
<span class="n">ans</span> <span class="o">=</span> <span class="n">ans</span> <span class="o">&</span> <span class="n">mask</span><span class="p">[</span><span class="mi">32</span> <span class="o">-</span> <span class="n">tmp</span><span class="p">];</span>
<span class="p">}</span>
<span class="kt">long</span> <span class="kt">long</span> <span class="n">key</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="n">key</span> <span class="o">|=</span> <span class="n">ans</span><span class="p">;</span>
<span class="n">key</span> <span class="o">=</span> <span class="p">(</span><span class="n">key</span> <span class="o"><<</span> <span class="mi">8</span><span class="p">)</span> <span class="o">|</span> <span class="n">tmp</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">dat</span><span class="p">.</span><span class="n">count</span><span class="p">(</span><span class="n">key</span><span class="p">))</span>
<span class="n">dat</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">j</span> <span class="o"><<</span> <span class="mi">8</span><span class="p">)</span> <span class="o">|</span> <span class="n">str</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="sc">'a'</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="n">m</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">scanf</span><span class="p">(</span><span class="s">"%s"</span><span class="p">,</span> <span class="n">ip</span><span class="p">);</span>
<span class="n">ans</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">ip</span><span class="p">[</span><span class="n">j</span><span class="p">]</span> <span class="o">!=</span> <span class="sc">'\0'</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
<span class="k">if</span> <span class="p">(</span><span class="n">ip</span><span class="p">[</span><span class="n">j</span><span class="p">]</span> <span class="o">==</span> <span class="sc">'.'</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">ans</span> <span class="o">=</span> <span class="p">(</span><span class="n">ans</span> <span class="o"><<</span> <span class="mi">8</span><span class="p">)</span> <span class="o">|</span> <span class="n">tmp</span><span class="p">;</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">else</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="n">tmp</span> <span class="o">*</span> <span class="mi">10</span> <span class="o">+</span> <span class="n">ip</span><span class="p">[</span><span class="n">j</span><span class="p">]</span> <span class="o">-</span> <span class="sc">'0'</span><span class="p">;</span>
<span class="n">ans</span> <span class="o">=</span> <span class="p">(</span><span class="n">ans</span> <span class="o"><<</span> <span class="mi">8</span><span class="p">)</span> <span class="o">|</span> <span class="n">tmp</span><span class="p">;</span>
<span class="kt">long</span> <span class="kt">long</span> <span class="n">key</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">id</span> <span class="o">=</span> <span class="mh">0x3fffffff</span><span class="p">;</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o"><</span> <span class="mi">33</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="n">ans</span> <span class="o">&</span> <span class="n">mask</span><span class="p">[</span><span class="n">j</span><span class="p">];</span>
<span class="n">key</span> <span class="o">=</span> <span class="n">tmp</span><span class="p">;</span>
<span class="n">key</span> <span class="o">=</span> <span class="p">(</span><span class="n">key</span> <span class="o"><<</span> <span class="mi">8</span><span class="p">)</span> <span class="o">|</span> <span class="p">(</span><span class="mi">32</span> <span class="o">-</span> <span class="n">j</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="n">dat</span><span class="p">.</span><span class="n">count</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="o">&&</span> <span class="n">dat</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o"><</span> <span class="n">id</span><span class="p">)</span>
<span class="n">id</span> <span class="o">=</span> <span class="n">dat</span><span class="p">[</span><span class="n">key</span><span class="p">];</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="n">id</span> <span class="o">&</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">puts</span><span class="p">(</span><span class="s">"YES"</span><span class="p">);</span>
<span class="k">else</span>
<span class="n">puts</span><span class="p">(</span><span class="s">"NO"</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
<span class="cm">/***
5 5
deny 0.0.0.0
allow 0.0.0.1/28
allow 0.0.0.255/28
allow 0.0.0.0
deny 0.0.0.0/24
1.2.3.4
1.2.3.5
1.1.1.1
0.0.0.1
0.0.0.0
***/</span>
</code></pre></div></div>2016年微软校园招聘在线笔试第二题,数据结构题,使用Trie树或STL map均可解Start Here2016-02-29T00:00:00+00:002016-02-29T00:00:00+00:00http:imkean.com/Start-Here<ul id="toc_of_keans_blog">
<li><a href="#code-and-highlight" id="toc_of_keans_blog-code-and-highlight">Code and Highlight</a></li>
<li><a href="#mathjax" id="toc_of_keans_blog-mathjax">MathJax</a></li>
<li><a href="#lists" id="toc_of_keans_blog-lists">Lists</a></li>
<li><a href="#abbreviations-kramdown" id="toc_of_keans_blog-abbreviations-kramdown">Abbreviations (Kramdown)</a></li>
<li><a href="#set-classes-and-ids" id="toc_of_keans_blog-set-classes-and-ids">Set Classes and IDs</a></li>
<li><a href="#tables" id="toc_of_keans_blog-tables">Tables</a></li>
<li><a href="#picture" id="toc_of_keans_blog-picture">Picture</a></li>
<li><a href="#links" id="toc_of_keans_blog-links">Links</a></li>
<li><a href="#horizontal-rules" id="toc_of_keans_blog-horizontal-rules">Horizontal Rules</a></li>
<li><a href="#emphasis" id="toc_of_keans_blog-emphasis">Emphasis</a></li>
<li><a href="#footnote" id="toc_of_keans_blog-footnote">Footnote</a></li>
</ul>
<h2 id="code-and-highlight">Code and Highlight</h2>
<h3 id="code-block">Code Block</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">def</span> <span class="nf">show</span>
<span class="vi">@widget</span> <span class="o">=</span> <span class="no">Widget</span><span class="p">(</span><span class="n">params</span><span class="p">[</span><span class="ss">:id</span><span class="p">])</span>
<span class="n">respond_to</span> <span class="k">do</span> <span class="o">|</span><span class="nb">format</span><span class="o">|</span>
<span class="nb">format</span><span class="p">.</span><span class="nf">html</span> <span class="c1"># show.html.erb</span>
<span class="nb">format</span><span class="p">.</span><span class="nf">json</span> <span class="p">{</span> <span class="n">render</span> <span class="ss">json: </span><span class="vi">@widget</span> <span class="p">}</span>
<span class="k">end</span>
<span class="k">end</span>
</code></pre></div></div>
<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#include <stdio.h>
#include <stdlib.h>
</span>
<span class="kt">int</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">;</span>
<span class="kt">int</span> <span class="o">*</span><span class="n">e</span><span class="p">,</span> <span class="o">*</span><span class="n">p</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
<span class="n">puts</span><span class="p">(</span><span class="s">"Hello,Kean!"</span><span class="p">);</span>
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>
<h3 id="inline-code">Inline code</h3>
<p>I think you should use an
<code class="highlighter-rouge"><addr></code> element here instead.</p>
<h2 id="mathjax">MathJax</h2>
<p><script type="math/tex">a^2 = b^2 + c^2</script><br />
For example this is a Block level <script type="math/tex">x = {-b \pm \sqrt{b^2-4ac} \over 2a}</script> formula, and this is an inline Level
<script type="math/tex">x = {-b \pm \sqrt{b^2-4ac} \over 2a}</script> formula.
\[ \frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} =1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}}{1+\frac{e^{-8\pi}} {1+\ldots} } } } \]</p>
<h2 id="lists">Lists</h2>
<ul class="task-list">
<li>✘ task one not finish</li>
<li>
<p>✓ task two finished</p>
</li>
<li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" checked="checked" />task three not finish</li>
<li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" />task one not finish <code class="highlighter-rouge">- + SPACE + [ ]</code></li>
<li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" checked="checked" />task two finished <code class="highlighter-rouge">- + SPACE + [x]</code></li>
<li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" checked="checked" />This is a complete item</li>
</ul>
<h3 id="unordered-list">Unordered List</h3>
<ul>
<li>Item 1</li>
<li>Item 2
<ul>
<li>Item 2a</li>
<li>Item 2b</li>
</ul>
</li>
</ul>
<h3 id="ordered-list">Ordered List</h3>
<ol>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3
<ul>
<li>Item 3a</li>
<li>Item 3b</li>
</ul>
</li>
</ol>
<h2 id="abbreviations-kramdown">Abbreviations (Kramdown)</h2>
<p>This is some text not written in <abbr title="HyperTextMarkupLanguage">HTML</abbr> but in <abbr title="It's called Markdown">another language</abbr>!</p>
<h2 id="set-classes-and-ids">Set Classes and IDs</h2>
<p id="para-one">A simple paragraph with an ID attribute.</p>
<blockquote title="The blockquote title" id="myid">
<p>A blockquote with a title</p>
</blockquote>
<ul>
<li class="cls">This item has the class “cls”</li>
</ul>
<div class="ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Some code here
</code></pre></div></div>
<h2 id="tables">Tables</h2>
<table>
<thead>
<tr>
<th>First Header</th>
<th>Second Header</th>
</tr>
</thead>
<tbody>
<tr>
<td>Content from cell 1</td>
<td>Content from cell 2</td>
</tr>
<tr>
<td>Content in the first column</td>
<td>Content in the second column</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th>Default aligned</th>
<th style="text-align: left">Left aligned</th>
<th style="text-align: center">Center aligned</th>
<th style="text-align: right">Right aligned</th>
</tr>
</thead>
<tbody>
<tr>
<td>First body part</td>
<td style="text-align: left">Second cell</td>
<td style="text-align: center">Third cell</td>
<td style="text-align: right">fourth cell</td>
</tr>
<tr>
<td>Second line</td>
<td style="text-align: left">foo</td>
<td style="text-align: center"><strong>strong</strong></td>
<td style="text-align: right">baz</td>
</tr>
<tr>
<td>Third line</td>
<td style="text-align: left">quux</td>
<td style="text-align: center">baz</td>
<td style="text-align: right">bar</td>
</tr>
<tr>
<td>Second body</td>
<td style="text-align: left"> </td>
<td style="text-align: center"> </td>
<td style="text-align: right"> </td>
</tr>
</tbody>
<tbody>
<tr>
<td>2 line</td>
<td style="text-align: left"> </td>
<td style="text-align: center"> </td>
<td style="text-align: right"> </td>
</tr>
<tr>
<td>ok</td>
<td style="text-align: left"> </td>
<td style="text-align: center"> </td>
<td style="text-align: right"> </td>
</tr>
<tr>
<td>sdf</td>
<td style="text-align: left"> </td>
<td style="text-align: center"> </td>
<td style="text-align: right"> </td>
</tr>
<tr>
<td>sdfd</td>
<td style="text-align: left"> </td>
<td style="text-align: center"> </td>
<td style="text-align: right"> </td>
</tr>
<tr>
<td>dfd</td>
<td style="text-align: left"> </td>
<td style="text-align: center"> </td>
<td style="text-align: right"> </td>
</tr>
</tbody>
<tfoot>
<tr>
<td>Footer row</td>
<td style="text-align: left"> </td>
<td style="text-align: center"> </td>
<td style="text-align: right"> </td>
</tr>
</tfoot>
</table>
<h2 id="picture">Picture</h2>
<p><img src="/images/404.jpg" alt="_config.yml" /></p>
<h2 id="links">Links</h2>
<p><a href="https://github.com/hikean/hikean.github.io">hikean.github.io repository</a> on GitHub.</p>
<p>email <a href="mailto:example@example.com">example@example.com</a></p>
<p><a href="http://github.com">GitHub</a></p>
<p>autolink <a href="http://www.github.com/">http://www.github.com/</a></p>
<h2 id="horizontal-rules">Horizontal Rules</h2>
<hr />
<hr />
<hr />
<h2 id="emphasis">Emphasis</h2>
<p><em>This text will be italic</em>
<em>This will also be italic</em></p>
<p><strong>This text will be bold</strong>
<strong>This will also be bold</strong></p>
<p><em>You <strong>can</strong> combine them</em></p>
<h2 id="footnote">Footnote</h2>
<p>This is a footnote<sup id="fnref:1"><a href="#fn:1" class="footnote">1</a></sup> <sup id="fnref:foot_note"><a href="#fn:foot_note" class="footnote">2</a></sup> <sup id="fnref:other-note"><a href="#fn:other-note" class="footnote">3</a></sup></p>
<div class="footnotes">
<ol>
<li id="fn:1">
<p>Some <em>crazy</em> footnote definition. <a href="#fnref:1" class="reversefootnote">↩</a></p>
</li>
<li id="fn:foot_note">
<blockquote>
<p>Blockquotes can be in a footnote.</p>
</blockquote>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>as well as code blocks
</code></pre></div> </div>
<p>or, naturally, simple paragraphs. <a href="#fnref:foot_note" class="reversefootnote">↩</a></p>
</li>
<li id="fn:other-note">
<p>no code block here (spaces are stripped away) <a href="#fnref:other-note" class="reversefootnote">↩</a></p>
</li>
</ol>
</div>I started Here!There are some basic and useful kramdown syntax.