<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Zhitao&apos;s Blog</title>
    <description>You are what you do.
</description>
    <link>https://www.zhitao.me/</link>
    <atom:link href="https://www.zhitao.me/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Sun, 21 Jun 2026 23:36:10 +0000</pubDate>
    <lastBuildDate>Sun, 21 Jun 2026 23:36:10 +0000</lastBuildDate>
    <generator>Jekyll v3.10.0</generator>
    
      <item>
        <title>下肢皮损瘙痒分歧</title>
        <description>&lt;p&gt;今天查了不少资料，根据医生开的药，发现了老婆小腿上那块反反复复发痒的地方根本不是湿疹，而是脚气顺着腿蔓延上去的真菌感染。&lt;/p&gt;

&lt;p&gt;当时医生真的很无语，压根就没有说是什么病，然后直接给开了酮康挫软膏。我跟我老婆一直以为是湿疹，害&lt;/p&gt;

&lt;p&gt;不过查得再明白也没啥用，在用不用这个药上，我根本就没办法说服她，她就是希望见效快&lt;/p&gt;

&lt;p&gt;我妈之前看她痒得难受，强烈推荐了那种带激素的复方药膏（咪康唑氯倍他索）。我老婆非常信我妈，因为那药涂上去立马止痒。我试图解释：这药里的强效激素只是把皮肤的免疫反应给“麻醉”了，不痒是暂时的，实际上底下的真菌正在没有抵抗的“温床”里疯狂繁殖，停药后大概率会反噬。我劝她用回以前医生开的单方酮康唑软膏，纯粹去饿死真菌。但结果没用，单方药见效太慢，被她直接放弃了，并且基于当前中国一直吃的都是激素的现实，说吃激素就吃激素了，哈哈。&lt;/p&gt;

&lt;p&gt;她还经常会求助一招传统技能：滚鸡蛋。我本来想根据AI查的讲，这其实是神经传导“烫”比“痒”快造成的错觉，实际上等于给最喜温喜湿的真菌建了个豪华桑拿房，越热它们繁殖得越快。但想起以前的沟通经历，直接闭了嘴&lt;/p&gt;

&lt;p&gt;最终的结果就是，医学/AI的逻辑经过我的表述，没干过长辈经验和传统习惯。她现在继续执行、偏好的策略：涂着强效复方药膏，配着热鸡蛋滚腿。&lt;/p&gt;

&lt;p&gt;既然没办法说服，然后发现我自己心情不爽，通过和AI聊天，发现我可以改进的点。以后就查出来结果直接，记录一篇博客，满足我自己的好奇心，但是不要求自己说服别人~&lt;/p&gt;

&lt;p&gt;这次我就在这儿默默记一笔留个底，就当个旁观者观察一下吧，看看过阵子这真菌到底会不会像资料里说的那样大爆发。具体的会遇到啥情况~&lt;/p&gt;
</description>
        <pubDate>Sat, 20 Jun 2026 22:12:38 +0000</pubDate>
        <link>https://www.zhitao.me/2026/06/issue-6.html</link>
        <guid isPermaLink="true">https://www.zhitao.me/2026/06/issue-6.html</guid>
        
        
      </item>
    
      <item>
        <title>测试我用codex写的使用issue自动发博客的机制</title>
        <description>&lt;p&gt;AI 时代是真的方便，我感觉直接在本地或者手机上写相关的博客特别不方便。它直接给我写代码写脚本，然后完成了相关的自动设计。现在这篇没博客是用来测试相关的的脚本是否可行的。哈哈&lt;/p&gt;

&lt;p&gt;以后能这么用还是挺爽的。&lt;/p&gt;
</description>
        <pubDate>Sat, 20 Jun 2026 05:51:07 +0000</pubDate>
        <link>https://www.zhitao.me/2026/06/codex-issue.html</link>
        <guid isPermaLink="true">https://www.zhitao.me/2026/06/codex-issue.html</guid>
        
        
      </item>
    
      <item>
        <title>I am back</title>
        <description>&lt;h1 id=&quot;i-am-back&quot;&gt;I am back&lt;/h1&gt;

&lt;p&gt;测试直接在Github上编辑博客的效果。。我这里本地使用ssh连接github有ssl验证的问题&lt;/p&gt;

&lt;p&gt;经验证，使用github desktop 或者 github 官方cli gh进行认证鉴权后，无问题，以后，可以在VSCode里，写博客拉&lt;/p&gt;
</description>
        <pubDate>Sat, 06 Feb 2021 07:45:16 +0000</pubDate>
        <link>https://www.zhitao.me/2021/02/i-am-back-2021.html</link>
        <guid isPermaLink="true">https://www.zhitao.me/2021/02/i-am-back-2021.html</guid>
        
        <category>test</category>
        
        
      </item>
    
      <item>
        <title>实现kilo.c中的思考</title>
        <description>&lt;h1 id=&quot;实现kiloc中的思考&quot;&gt;实现kilo.c中的思考&lt;/h1&gt;

&lt;p&gt;有些数据就是规定好的，这个就叫API&lt;/p&gt;

&lt;p&gt;比较termios这个struct，里面的定义和起效方式，就是如此的规定。&lt;/p&gt;

&lt;p&gt;还有CNTL_KEY的define定义，把相关的ctrl+char，转成相应值，也是一种约定，ASCII定义。&lt;/p&gt;

&lt;p&gt;这里想到了《UNIX环境高级编程》的作用，它是在整体上给出了UNIX API的接口实现以及细节实现&lt;/p&gt;

</description>
        <pubDate>Sat, 23 Sep 2017 00:00:00 +0000</pubDate>
        <link>https://www.zhitao.me/2017/09/think-in-implemention-kilo-c.html</link>
        <guid isPermaLink="true">https://www.zhitao.me/2017/09/think-in-implemention-kilo-c.html</guid>
        
        
      </item>
    
      <item>
        <title>工作一年记录</title>
        <description>&lt;h1 id=&quot;工作一年记录&quot;&gt;工作一年记录&lt;/h1&gt;

&lt;h2 id=&quot;前言个人介绍&quot;&gt;前言，个人介绍&lt;/h2&gt;

&lt;p&gt;我是超级乐观的（虽然我总感觉自己碰到某些事情时，其实是悲观的，但是和其他人一比，我发现自己在我悲观的事情上面都是乐观的）。
所以，下面的总结大都偏向自己的进步，没有提到自己混的情况。&lt;/p&gt;

&lt;p&gt;但是，一句话总结：
&lt;em&gt;现在的感叹，我终于进入进步的车道了，在下降车道了那么多年，七年一辈子了&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;写这个记录是为了什么？
反思自己一年的进步速度，&lt;/p&gt;

&lt;h2 id=&quot;个人的进步&quot;&gt;个人的进步&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;自信增长，认知自己的不同，但是这些不同对社会、公司是能够带来更多贡献  —— 主要是工作效率的反馈上面&lt;/li&gt;
  &lt;li&gt;读了很多书 —— 我认为由于工作后的时间紧张，个人的真正喜好的事情就会明显的突出出来，我在工作一年的时间里面，花费时间最长的就是读书，包括网络小说、技术书籍、非虚构书籍等，并且在这一年时间里，我可以说，非网络小说的阅读时间是大于网络小说的阅读时间，对我来说这是一个很大的进步。&lt;/li&gt;
  &lt;li&gt;订阅李笑来的『财富自由之路』，这里面有很多篇文章对我的影响非常大，从最底层更新我很多观念，让自己明显感觉到决策的效率和目的性的更强。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;尝试的东西&quot;&gt;尝试的东西&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;googletest —— google提供的C++ 单元测试工具&lt;/li&gt;
  &lt;li&gt;protobuf —— google出品的序列化工具，我在查找它python3版本的proto2支持的搜索上陷入了依次死胡同&lt;/li&gt;
  &lt;li&gt;python —— 算是把python引入公司，第一次是公司下发的一个他们以为很麻烦的任务，我使用python，一个多小时搞定，然后我的leader就喜欢上，并喜欢让人家也学习，并用python写了一个Mock的服务程序，大大提高了我调试的效率（不用等待我们公司所有系统都好）&lt;/li&gt;
  &lt;li&gt;g3log —— 一个小型的异步日志库，增加了一个设置文件大小，在超过指定大小，自动新建日志文件的操作（这个和我们公司使用的一个库在一起有时候会崩。。）&lt;/li&gt;
  &lt;li&gt;cppcheck —— C++ 静态代码检查&lt;/li&gt;
  &lt;li&gt;C++11 —— C++比较新的一个标准，为C++添加了许多实用功能，如线程，互斥量、信号量，智能指针，还有关键的lambda&lt;/li&gt;
  &lt;li&gt;Visual Studio 2013 —— 支持90%的C++11特性，调试功能很强大&lt;/li&gt;
  &lt;li&gt;Resharper —— JetBrains出品的用于VS的辅助插件，重构功能很强大&lt;/li&gt;
  &lt;li&gt;Visual Assist —— VS辅助插件，对阅读代码帮助很大&lt;/li&gt;
  &lt;li&gt;Dash for Mac/iOS —— 查看文档的工具，超级方便&lt;/li&gt;
  &lt;li&gt;SVN —— 公司使用的版本管理软件，自己曾经因为没有先更新，再commit，花费半天时间整理错误的文件&lt;/li&gt;
  &lt;li&gt;git-svn —— 使用这个之后，由于本地可以进行小的提交，开发效率明显增加&lt;/li&gt;
  &lt;li&gt;Java —— 转到公司前台开发后使用Java做为开发语音，从阅读Effective Java开始学起，reflect也试了一次&lt;/li&gt;
  &lt;li&gt;Java 8 —— lambda很好用，stream代码太长了。。&lt;/li&gt;
  &lt;li&gt;Maven —— Java的构建工具，我把我公司的前台代码迁移到了maven&lt;/li&gt;
  &lt;li&gt;Intellij IDEA —— JetBrains出品的Java开发工具，超级好用&lt;/li&gt;
  &lt;li&gt;Play Framework —— 基于Akka事件驱动的Java、Scala框架，从这里我破除了『建立新项目测试很麻烦』的心理障碍&lt;/li&gt;
  &lt;li&gt;Spring —— Java的开发框架，只使用了基本的MC架构，AOP没有使用，代码量 —— 1W -&amp;gt; 5k&lt;/li&gt;
  &lt;li&gt;ExtJs —— 公司前台前端的框架，算是大而全，不过公司使用的4，版本比较老，我把公司前端的代码迁移到ExtJs 4 的MVC架构，大大简化了代码，2W -&amp;gt; 1W（待统计）&lt;/li&gt;
  &lt;li&gt;Apache Commons IO、Codec，Compress—— Java基础类库，我把它和Guava都加到公司前台的pom.xml里面，并日常使用，IDEA在这点很强，不知道怎么用的时候，可以直接定位到代码&lt;/li&gt;
  &lt;li&gt;Elixir —— 一门基于Erlang BEAM的函数式编程语言，印象深的就是pattern matching,不一样的感觉&lt;/li&gt;
  &lt;li&gt;JRebel —— Java Hotswap，配合LiveEdit，大大提高前台的开发效率（减少95%以上的重启tomcat事件）&lt;/li&gt;
  &lt;li&gt;阅读zeal的源代码，发现才8000行不到，不过给它的一个feature没有写完&lt;/li&gt;
  &lt;li&gt;sonarlint —— 正在试，没来得及按照它的提示修改代码&lt;/li&gt;
  &lt;li&gt;机器学习 —— 读了一本书，跟随一本书实践一小部分（数据我的笔记本算不过来）&lt;/li&gt;
  &lt;li&gt;Swift —— 跟随书籍写了一个小程序，没有继续（半途而废的例子之一）&lt;/li&gt;
  &lt;li&gt;————&lt;/li&gt;
  &lt;li&gt;早晨7点15到公司，晚上9点30走（大致这样子了8个月） &amp;amp; 早晨接近9点到公司，下午6点走（现在尝试了2个月）&lt;/li&gt;
  &lt;li&gt;读完一本书的第一遍后，直接开读第二遍，并做思维导图笔记&lt;/li&gt;
  &lt;li&gt;周末出去参加别人组织的活动，评聚堂，书虫部落，书声&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;在技术方面的进步&quot;&gt;在技术方面的进步&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;总结自己阅读代码的流程，让自己对读代码更有自信&lt;/li&gt;
  &lt;li&gt;总结一套学习新技术的流程。 —— 在Java和ExtJs上进行尝试性的实践，仍然需要继续尝试优化&lt;/li&gt;
  &lt;li&gt;公司压力下的动手编程实践，发现我编程的效率是相当高的（应该是对比的原因）&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;在读书方面的进步&quot;&gt;在读书方面的进步&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;把读非网络小说书籍的起手难度，通过大量阅读降低了许多。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;经历&quot;&gt;经历&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;经历了第一次黑暗时刻，就是某个瞬间突然怀疑起自己人生的所有意义。&lt;/li&gt;
&lt;/ul&gt;

</description>
        <pubDate>Fri, 24 Feb 2017 00:00:00 +0000</pubDate>
        <link>https://www.zhitao.me/2017/02/one-year-work-summary.html</link>
        <guid isPermaLink="true">https://www.zhitao.me/2017/02/one-year-work-summary.html</guid>
        
        
      </item>
    
      <item>
        <title>Mac调教输入法总结</title>
        <description>&lt;h2 id=&quot;为什么要调教输入法&quot;&gt;为什么要调教输入法？&lt;/h2&gt;
&lt;p&gt;输入法作为最常用的软件，因为我们是中文用户，所以经常需要在中英文中切换，如何更快，更无错的切换，是一个很重要的问题。&lt;/p&gt;

&lt;p&gt;初期，我使用百度输入法，让它配置静默模式，当切换到某些程序时自动配置成英文，并且使用Shift进行百度输入法内部软件切换。&lt;/p&gt;

&lt;p&gt;Mac默认是所有程序共同使用一个输入法状态，从而在切换程序时，导致切换输入法的需求变得更多。&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;把每个程序配置成使用不同的输入法，可以从源头上解决大部分问题&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;这个时候，如果我按键盘时，输入一个英文，我想回到中文可能性有：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;百度输入法英文模式 -&amp;gt; 按Shift键切换回来&lt;/li&gt;
  &lt;li&gt;英文输入法 -&amp;gt; 按Alt+Space切换回来&lt;/li&gt;
  &lt;li&gt;大写的话 -&amp;gt; CAPLOCKS按下，然后再去思索上两条路&lt;/li&gt;
  &lt;li&gt;靠谱的解决方案：出现英文时，抬起头看右上角的输入法显示的是什么
    &lt;ul&gt;
      &lt;li&gt;问题：打断自己的输入&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;出现问题原因：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;可能的切换中英文方式太多，导致需要添加很多判断
    &lt;ul&gt;
      &lt;li&gt;Shift、Alt+Space、CAPLOCKS&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;静默模式的自动判断导致中英文更加麻烦&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;另一个问题：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;使用Shift切换中英文会误按，在我想使用Shift输入大写的时候，有的时候按键不利索，很容易错误的切换成英文&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;尝试过的方法：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;百度内提供的CAPSLOCK切换中英文，在输入密码时就囧了&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;##为什么使用CAPLOCKS做切换？&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;一个键比两个键快 —— 节约50%&lt;/li&gt;
  &lt;li&gt;去除由于CAPLOCKS可能造成的判断在什么输入法的问题&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;##最简单的方式：&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;选项位置：系统设置 -&amp;gt; 键盘 -&amp;gt; 输入源 -&amp;gt; 下方“自动切换文稿的输入源”，选中&lt;/li&gt;
  &lt;li&gt;这样每个程序会有一个自己的输入法，效果更好。&lt;/li&gt;
  &lt;li&gt;关闭百度输入法静默模式&lt;/li&gt;
  &lt;li&gt;关闭百度输入法Shift切换中英文&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;2021-04-09-更新&quot;&gt;2021-04-09 更新&lt;/h2&gt;

&lt;p&gt;由于对国内相关输入法的不信任，并且苹果自带的输入法进步比较大，决定切换为使用苹果自带的双拼输入法&lt;/p&gt;

&lt;p&gt;这时，苹果自己支持 CAPSLOCK键切换中英文，让我减少了对一个软件的依赖，赞～&lt;/p&gt;
</description>
        <pubDate>Thu, 22 Oct 2015 00:00:00 +0000</pubDate>
        <link>https://www.zhitao.me/2015/10/Mac-input-source-adjust.html</link>
        <guid isPermaLink="true">https://www.zhitao.me/2015/10/Mac-input-source-adjust.html</guid>
        
        
      </item>
    
      <item>
        <title>Quick Sort 错误总结</title>
        <description>&lt;h1 id=&quot;quicksort-错误总结&quot;&gt;QuickSort 错误总结&lt;/h1&gt;

&lt;p&gt;两次错误情况：&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;swap函数实现错误，swap共实现错误两次&lt;/li&gt;
  &lt;li&gt;通过searchcode搜索到的参考代码是错误的，而自己对quicksort不够熟悉，导致无法确认quicksort能够做到什么程度，导致不能确定错误出在哪里，直至最后确定代码有误了之后，尝试按照自己的想法修改，最终正确。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;两次的共同点：需要保护pivot值，即移到数组start或者end，在partition再放回来。&lt;/p&gt;

&lt;p&gt;因为可能存在于pivot相等的值，所以你无法通过数值来判定是否pivot，只能通过物理的移动来做出区分。&lt;/p&gt;

&lt;p&gt;另外，在调试过程中学到了一点：&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;用逻辑找bug，而不是穷举，这样速度更快。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;逻辑的意思是，你调试的时候，根据自己的推断，写出这个时候应该输出什么，各个变量是什么值
然后在调试的时候和当时的输出结果对比，验证是否一样，一样说明这个阶段正确，不一样，问自己这个不一样可能是由什么样的原因导致的？
列出原因，然后写出因为这个原因出错，会在这个方向显示什么样子的结果？对照这个方向的结果，是否一致，一个可能性，一个可能性的去排查。&lt;/p&gt;

&lt;p&gt;虽然初期有可能不熟悉，但是，真的习惯了列出错误这一项，效率很高很高。&lt;/p&gt;

&lt;p&gt;就像先把事情列出来，然后一件事情一件事情的问自己目的，冲着目的去做事情，
虽然感觉前期很浪费时间，但是事实告诉了我，这样效率非常高，比我以前粗放的做法至少高2倍的效率。&lt;/p&gt;

&lt;p&gt;这两个核心的一点就是：&lt;/p&gt;

&lt;p&gt;要 &lt;strong&gt;把事情列出来，用纸笔或者电脑记下来&lt;/strong&gt;，只有列出来，你才能把这个层次的东西放下，然后去深入探索其中某一项，
探索成功了固然好，失败了，可以回到第二个可能性继续尝试，而不用担心忘记。&lt;/p&gt;

&lt;p&gt;而且能够 &lt;strong&gt;提醒自己，不要在往前走的过程中，走错方向了&lt;/strong&gt; ，只有记下才是真正的记录&lt;/p&gt;

&lt;p&gt;虽然这些东西对有些人可能很基础，但是对我来说，这么做就是很大的进步。&lt;/p&gt;

&lt;p&gt;加油！！&lt;/p&gt;
</description>
        <pubDate>Sun, 09 Aug 2015 00:00:00 +0000</pubDate>
        <link>https://www.zhitao.me/2015/08/quicksort-error-summarise.html</link>
        <guid isPermaLink="true">https://www.zhitao.me/2015/08/quicksort-error-summarise.html</guid>
        
        <category>test</category>
        
        
      </item>
    
      <item>
        <title>各种不同的swap方法和他们的优缺点</title>
        <description>&lt;h1 id=&quot;各种不同的swap方法和他们的优缺点&quot;&gt;各种不同的swap方法和他们的优缺点&lt;/h1&gt;
&lt;h1 id=&quot;multi-swap-method-and-its-pros-and-cons&quot;&gt;Multi-swap method and its Pros and Cons&lt;/h1&gt;

&lt;p&gt;Origin:
Today I write a quicksort program. I’m very confident, and think I can write once and get it through.
But reality is different, I debug it for 1 and a half hour. And find the question is on the swap function I used.&lt;/p&gt;

&lt;p&gt;First, I use a swap funciton like this:&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;swap&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;^&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;b&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;^&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;^&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;And get many output of 0, which I didn’t even have one in the input array.
Then I try this one:&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;swap&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;temp&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;b&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;temp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Yeah, I make a mistake that, the third sentence should be the second sentence.&lt;/p&gt;

&lt;p&gt;But, the two mistakes is not easy to find, especially when I’m not very confident with my quicksort code.
and confident with my swap code. What a crazy thing.&lt;/p&gt;

&lt;p&gt;So, I decide to collect some swap method, and compare below.&lt;/p&gt;

&lt;p&gt;Method 1:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Pros: Easy to read and write&lt;/li&gt;
  &lt;li&gt;Cons: need an extra space&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;swap&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;temp&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;b&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;temp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Method 2:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Pros: No more extra space needed&lt;/li&gt;
  &lt;li&gt;Cons: Add an if-statement to check a, b is not in the same address
Otherwise a,b will all set to 0.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;swap&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;^&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;b&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;^&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;^&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Method 3:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;*Pros: No more extra space&lt;/li&gt;
  &lt;li&gt;Cons: maybe overflow&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;swap&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Conclusion:
Method 1 is enough. and It doesn’t need to write Method 2 and Method 3 for saving one extra space
Besides, compilers will optimize the process too.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;By: Donald Knuth&lt;/p&gt;

&lt;p&gt;About sentences above:
I think we should divide the work into what we should do to optimize, 
and what we could distribute to the tools like compilers, OS, etc.&lt;/p&gt;

&lt;p&gt;And Optimization is one mandatory process of software cycling.&lt;/p&gt;
</description>
        <pubDate>Sat, 08 Aug 2015 00:00:00 +0000</pubDate>
        <link>https://www.zhitao.me/2015/08/multi-swap-method-and-its-disadvantages.html</link>
        <guid isPermaLink="true">https://www.zhitao.me/2015/08/multi-swap-method-and-its-disadvantages.html</guid>
        
        
      </item>
    
      <item>
        <title>从jekyll不能解析markdown自己解决问题的过程中想到的</title>
        <description>&lt;p&gt;今天使用jekyll记录自己的面试经历，结果发现自己记录的markdown没有进行解析，我也不清楚是为什么&lt;/p&gt;

&lt;p&gt;自己寻找解决办法的过程如下：&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;认为自己的markdown语法错误（没有在大部分语句后添加空行），添加空行后，依然有问题&lt;/li&gt;
  &lt;li&gt;在github gist上测试自己的markdown语法是否有错，没有错误&lt;/li&gt;
  &lt;li&gt;认为jekyll使用的markdown解析器可能和github上的不一样，在kramdown和redcarpet切换，发现依然无法解析&lt;/li&gt;
  &lt;li&gt;在网上寻找kramdown和redcarpet的在线解析器，测试语法是否正确，发现自己的语法正确&lt;/li&gt;
  &lt;li&gt;认为是浏览器缓存的问题，换用safari使用（有的时候的确会有这种情况，但这次不是这个原因）&lt;/li&gt;
  &lt;li&gt;认为本地解析有可能出问题，上传到github上，使用github pages解析，依然出错&lt;/li&gt;
  &lt;li&gt;查看octopress生成的语法头是否有问题，尝试修改语法头，中间执行jekyll的目录出现问题，最终确定不是这个的问题&lt;/li&gt;
  &lt;li&gt;重新通过octopress new post “title” 命令建立一个测试的markdown文档，测试是否有问题，发现这个文件执行后也有问题&lt;/li&gt;
  &lt;li&gt;把markdown后缀改成md后缀，发现可以解析&lt;/li&gt;
  &lt;li&gt;想到自己在配置 _config.yml 的时候有配置过 markdown_ext: “md, markdown,mkd” ，
进里面寻找，发现md后面的逗号和markdown之间有一个空格，去掉，测试就成功了&lt;/li&gt;
  &lt;li&gt;上传到github上去之后，markdown后缀的依然不能成功，所以废弃之，只使用md后缀&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;总结，可以进步的地方：&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;先把自己想到的可能出现的问题列出来，然后根据&lt;strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;列表&lt;/code&gt;&lt;/strong&gt;一个个的去寻找，这样效率最高，如果不列下来，
自己在寻找答案的恩过程中很容易忘记自己的目的是什么，导致效率大大降低&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;自己的顺序也可以调节下，遇到错误，应该先找最简单的方式&lt;strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;复现&lt;/code&gt;&lt;/strong&gt;它，
从而排除更多的变量，在最初我是遇到一个变量，就去通过在其他地方才是去排除,
而没有想到，其实是可以把自己犯错的步骤重来一遍，然后看看哪里会出现错误。
这个是我需要学习的一个视角，需要多观察，实践。&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;
</description>
        <pubDate>Mon, 20 Jul 2015 07:45:16 +0000</pubDate>
        <link>https://www.zhitao.me/2015/07/jekyll-didnt-interpret-markdown.html</link>
        <guid isPermaLink="true">https://www.zhitao.me/2015/07/jekyll-didnt-interpret-markdown.html</guid>
        
        
      </item>
    
      <item>
        <title>my interview experience</title>
        <description>&lt;h1 id=&quot;2014年9月我的面试经历&quot;&gt;2014年9月我的面试经历&lt;/h1&gt;

&lt;h2 id=&quot;百度-应聘经历&quot;&gt;百度 应聘经历&lt;/h2&gt;

&lt;p&gt;陈志韬 一面：2014年9月21日&lt;/p&gt;

&lt;p&gt;traceroute 实现方式&lt;/p&gt;

&lt;p&gt;vector 数组 区别 list map unordered_map&lt;/p&gt;

&lt;p&gt;TCP 怎么控制阻塞的？&lt;/p&gt;

&lt;p&gt;滑动窗口是做什么用？ 用来同步发送方和接收方的 发送速度的。&lt;/p&gt;

&lt;p&gt;VFS 虚拟文件系统 是做什么的？&lt;/p&gt;

&lt;p&gt;ARP攻击是什么？怎么防止，硬件绑定ip, MAC, 观察有谁发出的ARP特别多，封禁之。&lt;/p&gt;

&lt;p&gt;进程间通信的机制&lt;/p&gt;

&lt;p&gt;问面试官问题：软件开发工程师，写的要做的工作是算法什么的，到公司内部做什么？&lt;/p&gt;

&lt;p&gt;这个职位是一个人才池，到公司后各个部门从里面选&lt;/p&gt;

&lt;p&gt;5点面试，6点结束，7点多收到二面通知，感觉相当有效率&lt;/p&gt;

&lt;p&gt;江霞：给你一个short数，让你转成一个低字节在低位，高字节在高位的byte数组&lt;/p&gt;

&lt;p&gt;TCP三次握手。&lt;/p&gt;

&lt;p&gt;1.项目，非常细，要讲清楚原理和具体的实现方法&lt;/p&gt;

&lt;p&gt;2.const变量的作用，指针与引用的区别&lt;/p&gt;

&lt;p&gt;3.数据库的隔离机制，select语句&lt;/p&gt;

&lt;p&gt;4.TCP、UDP的区别以及各有什么优点, TCP三次握手&lt;/p&gt;

&lt;p&gt;5.死锁是怎么回事，产生的必要条件，如何避免死锁，讲解银行家算法&lt;/p&gt;

&lt;p&gt;6.C++多态是怎么回事，如何实现&lt;/p&gt;

&lt;p&gt;7.N*N的格子，规定走向，到达最右下端顶点有多少种走法&lt;/p&gt;

&lt;p&gt;8.算法题：一个short型数，把它变成低地址在前，高地址在后的byte型数组&lt;/p&gt;

&lt;p&gt;张爱民&lt;/p&gt;

&lt;p&gt;iptable  推荐学习pthread，socket&lt;/p&gt;

&lt;p&gt;彭毅&lt;/p&gt;

&lt;p&gt;数据库的组合与连接 怎么查询&lt;/p&gt;

&lt;p&gt;3级台阶 走法计算&lt;/p&gt;

&lt;p&gt;死锁、死锁避免方法；进程、线程同步；TCP/UDP； 指针、引用区别；数据库查找、联合查找&lt;/p&gt;

&lt;p&gt;高帅：&lt;/p&gt;

&lt;p&gt;逻辑地址如何转化成物理地址&lt;/p&gt;

&lt;p&gt;如果给你一台linux系统&lt;/p&gt;

&lt;p&gt;如何接受多个请求。。。&lt;/p&gt;

&lt;p&gt;如果负载不下去 如何优化&lt;/p&gt;

&lt;p&gt;建议看的书籍：&lt;/p&gt;

&lt;p&gt;linux程序设计&lt;/p&gt;

&lt;p&gt;unix网络编程&lt;/p&gt;

&lt;p&gt;unix环境高级编程&lt;/p&gt;

&lt;p&gt;posix多线程程序设计&lt;/p&gt;

&lt;p&gt;debug hacks gdb&lt;/p&gt;

&lt;p&gt;李成：&lt;/p&gt;

&lt;p&gt;字符串的正则表达式匹配的代码&lt;/p&gt;

&lt;p&gt;陈志韬 二面：2014年9月22日&lt;/p&gt;

&lt;p&gt;乱序数组，找出其中满足 左边数小于该数，右边数大于等于该数的 数&lt;/p&gt;

&lt;p&gt;最近公共祖先LCA&lt;/p&gt;

&lt;p&gt;https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/master/ebook/zh/03.03.md&lt;/p&gt;

&lt;p&gt;TCP3次握手 SYN Flood攻击是什么&lt;/p&gt;

&lt;p&gt;Linux 编译后的文件有哪些内容？.text .data .bss 堆 栈&lt;/p&gt;

&lt;p&gt;父进程 子进程关系  没有什么特殊的关系吗？&lt;/p&gt;

&lt;p&gt;子进程可以访问父进程数据吗？&lt;/p&gt;

&lt;p&gt;父进程占用10G内存，创建子进程后直接使用10G内存吗？ copy on write 这个时候访问需要锁吗，锁的机制是什么&lt;/p&gt;

&lt;p&gt;进程间通讯机制？ 进程调度算法&lt;/p&gt;

&lt;p&gt;线程可以访问进程的所有数据吗？ 可以访问哪些数据？&lt;/p&gt;

&lt;p&gt;共享内存的实现机制&lt;/p&gt;

&lt;p&gt;Linux文件系统inode节点存储哪些数据，inode与磁盘块的对应方式&lt;/p&gt;

&lt;p&gt;什么是纯虚函数，写一个，纯虚函数占据空间大小，加上一个int后呢？再加一个char呢？&lt;/p&gt;

&lt;p&gt;子类实现了一个父类的虚函数，然后又添加了一个虚函数，这个时候，子类和父类的虚表都是什么样子的？&lt;/p&gt;

&lt;p&gt;findK 有哪些算法，这些算法的时间复杂度都是多少？ https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/master/ebook/zh/02.01.md&lt;/p&gt;

&lt;p&gt;1、quickselect&lt;/p&gt;

&lt;p&gt;B树，B+树 介绍，B+树的叶子节点的存储方式&lt;/p&gt;

&lt;p&gt;B-树&lt;/p&gt;

&lt;p&gt;问面试官的问题：百度新员工的培训机制是什么样子的？&lt;/p&gt;

&lt;p&gt;员工学院，2~3个月，自己从20多门课中选十几门课上，然后导师&lt;/p&gt;

&lt;p&gt;王洋 测试 三面问题：&lt;/p&gt;

&lt;p&gt;39个球一次取1-4个，两个人轮着取，最后取光的那个人获胜，设计方案，不能不取&lt;/p&gt;

&lt;p&gt;算法是10亿个int 找所有相同的&lt;/p&gt;

&lt;p&gt;2014年9月24日 百度三面&lt;/p&gt;

&lt;p&gt;项目中最大的收获是什么&lt;/p&gt;

&lt;p&gt;讲述Linux系统调用 有什么作用&lt;/p&gt;

&lt;p&gt;中断和异常的区别&lt;/p&gt;

&lt;p&gt;问了自己对未来要做什么的规划，还有想要做什么方向？&lt;/p&gt;

&lt;p&gt;详述Linux read命令实现方式&lt;/p&gt;

&lt;p&gt;火车运煤问题：http://coolshell.cn/articles/4429.html&lt;/p&gt;

&lt;h2 id=&quot;小米笔试题&quot;&gt;小米笔试题&lt;/h2&gt;

&lt;p&gt;给你一个输入的两个字符串&lt;/p&gt;

&lt;p&gt;(-2,4),(2,3),(5,0)&lt;/p&gt;

&lt;p&gt;(-3,3),(2,2),(1,1)&lt;/p&gt;

&lt;p&gt;分别代表两个多项式，求出多项式的乘积，并输出&lt;/p&gt;

&lt;p&gt;拓扑排序&lt;/p&gt;

&lt;h2 id=&quot;网易面试题--张爱民&quot;&gt;网易面试题 —— 张爱民&lt;/h2&gt;

&lt;p&gt;面试前的小笔试题：&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; 给一个无向图的定义，要求输出该图的连通子图的个数
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;面试一：&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; C++基础：template和多态的区别，虚函数和函数重载的区别

 操作系统基础：死锁

 网络：TCP三次握手

 简单算法：

      栈来实现队列

      如何求出一个链表的中点

 其他算法：

 几何：

           如何判断一个点在一条直线左边，如何判断一个点在三角形内还是三角形外

 概率：

           一个数组，长为N，其前k个数组元素已经放到另一个小数组中，i从大数组的k+1位开始到n，以概率k/i随机替换小数组中的任一个数，问最后某个数字在小数组中的概率是多少？

           一个线段分为三个小段，问这三个小段可以组成一个三角形的概率是多少？
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;面试二：&lt;/p&gt;

&lt;p&gt;算法：&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; 1.用随机生成0,1的随机数生成器生成[0-7]

 2.主角打空间里的怪，使子弹跑的距离最短

 3. 随机生成一个圆圈里的坐标，要求不需要判断这个生成的坐标是否越界

 4.空间中有N个点，求遍历所有点的最短距离
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;系统结构：&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; 1.死锁的硬件实现
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;其他：&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; 你编程碰到最大的问题是什么，如何解决的？
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;智能指针的实现&lt;/p&gt;

&lt;h2 id=&quot;阿里面试题&quot;&gt;阿里面试题&lt;/h2&gt;

&lt;p&gt;李成阿里面试总结：一面：linux从基本命令问到文件系统到内存管理&lt;/p&gt;

&lt;p&gt;c++：从模板的本质到算法的设计 kmp-&amp;gt;rb-&amp;gt;suffix-tree&lt;/p&gt;

&lt;p&gt;二面：就是各种团队协作的东东了&lt;/p&gt;

&lt;p&gt;c++：模板初始化，模板的本质&lt;/p&gt;

&lt;p&gt;Linux命令，文件系统，内存管理，多态&lt;/p&gt;

&lt;p&gt;C++和java的主要区别&lt;/p&gt;

&lt;p&gt;周军蕊面试：&lt;/p&gt;

&lt;p&gt;用户态、内核态区别&lt;/p&gt;

&lt;p&gt;操作系统中 malloc、free的功能与实现方法&lt;/p&gt;

&lt;p&gt;继承 优缺点  相对于组合&lt;/p&gt;

&lt;p&gt;vector 优缺点 相对于 数组&lt;/p&gt;

&lt;p&gt;Linux系统启动过程&lt;/p&gt;

&lt;h2 id=&quot;涂鸦移动面试经历&quot;&gt;涂鸦移动面试经历&lt;/h2&gt;

&lt;p&gt;September 16, 2014&lt;/p&gt;

&lt;p&gt;面试题：&lt;/p&gt;

&lt;p&gt;strcmp实现&lt;/p&gt;

&lt;p&gt;对学生成绩的排序 &amp;lt; 1000&lt;/p&gt;

&lt;p&gt;给你一个长度为s的环形字符串，找出字典序最小的长度为s的子串       这类算法叫最小表示法&lt;/p&gt;

&lt;p&gt;这个我没有答上来，算是KMP的一个变种&lt;/p&gt;

&lt;p&gt;对移动游戏的看法&lt;/p&gt;

&lt;p&gt;高帅被问的问题&lt;/p&gt;

&lt;p&gt;希尔排序，二维数组一个点只能向上向右走，求总共有多少路径，&lt;/p&gt;

&lt;p&gt;给出前序中序遍历，写出后序&lt;/p&gt;

&lt;h2 id=&quot;腾讯应聘经历&quot;&gt;腾讯应聘经历&lt;/h2&gt;

&lt;p&gt;进入腾讯 安全中心 的师兄 说的重点&lt;/p&gt;

&lt;p&gt;操作系统：&lt;/p&gt;

&lt;p&gt;进程内存空间（.text段 .data .BSS 堆 栈）&lt;/p&gt;

&lt;p&gt;死锁&lt;/p&gt;

&lt;p&gt;进程通信（在于传输数据）&lt;/p&gt;

&lt;p&gt;进程同步（在于呼哧访问资源）&lt;/p&gt;

&lt;p&gt;中断&lt;/p&gt;

&lt;p&gt;算法和数据结构：&lt;/p&gt;

&lt;p&gt;STL map和红黑树，Hash_map&lt;/p&gt;

&lt;p&gt;手写算法，快排，兄弟字符串&lt;/p&gt;

&lt;p&gt;链表是否有环&lt;/p&gt;

&lt;p&gt;语言（C++）/ 设计模式&lt;/p&gt;

&lt;p&gt;C++对象，内存布局，虚表，多态&lt;/p&gt;

&lt;p&gt;C++实现单例模式&lt;/p&gt;

&lt;p&gt;以下两个我感觉是偏安全多一些&lt;/p&gt;

&lt;p&gt;线程安全/可重入&lt;/p&gt;

&lt;p&gt;调用约定 stdcall cdecl&lt;/p&gt;

&lt;h2 id=&quot;美团应聘经历&quot;&gt;美团应聘经历&lt;/h2&gt;

&lt;p&gt;美团笔试：&lt;/p&gt;

&lt;p&gt;1、概率，红球&lt;/p&gt;

&lt;p&gt;2、单链表整数相加&lt;/p&gt;

&lt;p&gt;3、先递增 后递减 数组求最大&lt;/p&gt;

&lt;p&gt;4、&lt;/p&gt;

&lt;p&gt;5、汉字发音的全排列&lt;/p&gt;

&lt;p&gt;6、求n个点间的最小斜率&lt;/p&gt;

&lt;p&gt;7、找出邻近数和最接近零的 连续子数组&lt;/p&gt;

&lt;p&gt;8、寻找字符串中符合在字符串的该查询串的&lt;/p&gt;

&lt;p&gt;李成&lt;/p&gt;

&lt;p&gt;美团面试：Linux常用命令 、笔试的题目、线程与进程的区别 、个人规划、研究生期间做的最有成就感的事&lt;/p&gt;

&lt;p&gt;美团面试是三轮一起面试，其实是不刷人的，感觉相当于三个同级别的人给你面试，从不同的角度观察你。&lt;/p&gt;

&lt;p&gt;我的面试题：&lt;/p&gt;

&lt;p&gt;Linux下777的目录A，下面的一个文件b.txt，权限为600，问我能对b.txt做什么操作？&lt;/p&gt;

&lt;p&gt;查找二叉树路径和为固定值的路径，路径指从根节点到叶结点的节点值之和  递归的实现方式？&lt;/p&gt;

&lt;p&gt;kmp算法&lt;/p&gt;

&lt;p&gt;在2M个数中，找出前100个数，内存只能存200个数。  与堆相关？&lt;/p&gt;

&lt;p&gt;找出n个位置不相同的点的斜率最大的两个点的图示证明，笔试题的延伸&lt;/p&gt;

&lt;p&gt;最有成就感的事情&lt;/p&gt;

&lt;p&gt;解释善于倾听，和知识面广（我简历上的内容）&lt;/p&gt;

&lt;p&gt;进程间通信机制&lt;/p&gt;

&lt;h2 id=&quot;搜狗应聘经历&quot;&gt;搜狗应聘经历&lt;/h2&gt;

&lt;p&gt;二叉查找树 转换成 完全二叉查找树&lt;/p&gt;

&lt;p&gt;一个对象的序列化&lt;/p&gt;

&lt;p&gt;用socket模拟recv，send等操作&lt;/p&gt;

&lt;p&gt;线程安全性，与 可重入性&lt;/p&gt;

&lt;p&gt;以下是面试内容：&lt;/p&gt;

&lt;p&gt;基数排序  计数排序 桶排序&lt;/p&gt;

&lt;p&gt;findK实现&lt;/p&gt;

&lt;p&gt;二进制字符串相加，注意空指针的计算&lt;/p&gt;

&lt;p&gt;经历：&lt;/p&gt;

&lt;p&gt;策略研究去应聘的人特别少，所以自己有优势，前一天晚上7点多电话通知，并聊了一会自己会什么。&lt;/p&gt;

&lt;p&gt;第二天下午3点我去的面试&lt;/p&gt;

&lt;p&gt;去之前感觉他对我的印象特别好，所以基本上没为难我就开始和我聊起来了，中间面试官在我做题的时候还打电话问他的boss咨询如何发offer，说有一个人特别好，一个人差点，2个人还行，不知道我属于哪一个。&lt;/p&gt;
</description>
        <pubDate>Mon, 20 Jul 2015 00:00:00 +0000</pubDate>
        <link>https://www.zhitao.me/2015/07/my-code-interview-2014-9.html</link>
        <guid isPermaLink="true">https://www.zhitao.me/2015/07/my-code-interview-2014-9.html</guid>
        
        
      </item>
    
  </channel>
</rss>
