张土汪 http://github.com/shawnfan Java{script}代码仔

[1.19.2017] 更新:

2017年1月17日, 陪我征战多年的 2014 MackBookPro i7 3.xGHz 被一杯清水结束了生命,在这里深切缅怀悼念。这个Git Repo是小M陪我一字一句打出来的,有过蹉跎,也有过辉煌,陪我从Day1刷题一直刷到了Day1之中。直至今日,小M记录的代码还在给广大coder带来福利。为了延续小M无私奉献的精神,我将重新在这个repo活跃起来,重整已有的问题,也会尝试总结一些System Design方面的想法,将小M还没有能够达成的梦想实现。

原帖:

先贴一个福利:GitHub - shawnfan/LintCode: Java Solutions to problems on LintCode

然后再慢慢谈刷题的经验。

地点西雅图。

这一场算是彻头彻尾的胜利。归功于一年来的刷题。归功于不输阵的心态。归功于日渐成熟的谈吐。更归功于身边人的支持。等待了一年多,我对这场胜利真的期待了太久。

刷题是漫长的路,身边的人能陪伴你,但是从来无法代替你。我刷的最多的是LintCode; LeetCode其实比LintCode要更加严苛一些,在最终的备战时,可以买他们的会员,专门进到各个公司的单元狂刷一下。Flash Back 一下去年刷题的体验:

第一刷的时候完全不知道为什么要做这些事情,只觉得消耗了很多时间,但总不上道。其实什么都没有太刷出来,基本上就是懒洋洋地做题,看看别人的解答,一轮一轮地打击自己的信心。到头来,也只看了100来道题目吧。

第二刷时,完全是因为有最牛逼的公司递来了橄榄枝。那时我又兴奋又紧张,更多是紧张,因为自己真的是半瓶子醋啊!(说实在的,谁平时会没事一直练刷题呢,都是为了工作,都是需要动力的)这时开始仔细的看LeetCode还有LintCode里面的题目,分等级开始安排时间。面试的时间定在了一个月,还剩三十天!这三十天真实打了鸡血地不停刷题,战斗,总结,然后再上。到结尾的时候,大约有200道题目吧,其中100道是之前已经做过的。

然后,就失败了。

第三刷,是来年,我还在无奈的痛苦中,但也到了春暖花开,各个公司撒网的时候了。这一年Facebook, LinkedIn貌似都不太有动静,Twitter也在暴跌40%的痛苦中。苦苦等待,又来了几个机会,这一次,我没有冲动地定下30天的计划,但是依然充满了鸡血。这一边,仔细讲一讲吧,说说也能算是面经。

1. 把真的想去的公司,稍微排在后面一点,一般的公司,放在前面先去,当然是增加面试经验了。 心态还是要端正的:你想,要是后面的公司全都不要你,那么你去哪,废话,当然是去第一家要你的公司;所以,在这个时候要卯足力气,打好鸡血,做做全面的复习,然后上!

2. 心态要好:成败都是这几个月的家常便饭,失败了再走下一个。成功了也要看清自己的目标不要懈怠(虽然我拿到offer立刻就懈怠,后面的面试全部当做旅游)

3. 刷题要有策略。正所谓磨刀不误砍柴工,不要一味地钻进题目里面刷刷刷,复习复习复习,重点是要能总结! 有时候这种废话听上去一点力度都没有,但是实际情况就是那么简单。 咱们刷刷题就能找到工作的这个时代,远远不到拼智商的程度。 那拼什么?拼耐心和拼谁更加不浆糊。 刷了那么久,到底哪些题目是Tree, 哪些是DP,哪些是明显的坑?如果你到现在还没有总结,那。为。什。么。不。总。结! 不总结自己到底做了什么题目,脑子里就是一团浆糊。面试的时候可紧张了,我们这样的小青年,见到面试官肯定羞射,若不胸有成竹,写出来也是一团浆糊。 所以重中之重,就是要学会总结,学会去反思做过的题目。现在的LeetCode(竟然总结了题目开始卖钱我去!?), LintCode都会给出相应的Tag, 这非常好,就是帮助你把题目归类,分类型去刷。

4. 分类型,一个大块一个大块地去攻克。就这么简单。从简单的String, List, Tree 开始吧。

5. 我当时还是花钱买了LeetCode的那些题目的(羞。。。)因为求胜心切,这点小钱,就几个月,花吧,花吧。 这也是对自己的一种投资,也是一点动力,花了钱嘛,make evey peny count!

但是,有一件事情我要说清楚了:这些题目明明都是我们这些草民玩家通过一次次血淋淋的面试换来的宝贵经验,凭什么LeetCode就要拿过去卖钱... 当然, LeetCode提供的服务是特别好的, 他们的test case更加难,比LintCode要严苛一些(对我们自己好),所以charge一些费用也是应该的。但是,我真的觉得知识不应该被用来贩卖,知识应该共享,而你们网站提供的优质刷题环境,可以用来卖会员,比如说,我买了会员,你给我提供快两三倍的run speed等等。。。。。

一颗热爱Open Source的我,自然会好好‘总结’一把。跟网上大部分的大神不同,我不喜欢把我总结的题目都放在Blog里面,实在是,太难搜索了。

我把我做的所有题目都放在了GitHub上, 用我自己的标记方式,写好了题目梗概,自己在每个阶段的解法,在每个题目文件的最上方,还用中文写了用来Trigger Memory的笔记(别问我为什么用中文写:1. 中文容易提醒自己,母语嘛!2. 我不想让阿三门都跑过来看,虽然,open source吧,我还是稍微给一道语言的隔阂)

话都说到这个份上了,你们自己去不去看,就是你们自己的选择啦。用我的代码没问题,要是转我的代码,麻烦在你们转发的帖子上面贴一条我源代码的链接就好啦。 大约三百来道题目吧,你们在刷Lint或者Leet的时候,可以去我的页面搜索题目的名字。300多道,差不多中等的题目都能涉及到了(我去别跟我说现在题目都500多了,我真不明白,以后还让人怎么活!) GitHub - shawnfan/LintCode: Java Solutions to problems on LintCode

LeetCode, LintCode都很好,但刷题的核心是要有血性,会总结。

我的初衷就是想把自己做过的刷题路分享给还在题海的中国同伴,如果你们在看到那些解答,觉得不对,觉得幼稚的时候,send me a fix and pull request,我会定时接受代码的更新,服务大众嘛!

知乎上的一些文章---leetcode【笔记1】的更多相关文章

  1. ARCGIS知乎上的好文章

    http://zhihu.esrichina.com.cn/?/feature/ArcGISAndroidDevNote ArcGIS知乎上有哪些干货可以推荐? http://zhihu.esrich ...

  2. 在知乎上看到 Web Socket这篇文章讲得确实挺好,从头看到尾都非常形象生动,一口气看完,没有半点模糊,非常不错

    在知乎上看到这篇文章讲得确实挺好,从头看到尾都非常形象生动,一口气看完,没有半点模糊,非常不错,所以推荐给大家,非常值得一读. 作者:Ovear链接:https://www.zhihu.com/que ...

  3. Leetcode 笔记 113 - Path Sum II

    题目链接:Path Sum II | LeetCode OJ Given a binary tree and a sum, find all root-to-leaf paths where each ...

  4. Leetcode 笔记 110 - Balanced Binary Tree

    题目链接:Balanced Binary Tree | LeetCode OJ Given a binary tree, determine if it is height-balanced. For ...

  5. Leetcode 笔记 100 - Same Tree

    题目链接:Same Tree | LeetCode OJ Given two binary trees, write a function to check if they are equal or ...

  6. Leetcode 笔记 99 - Recover Binary Search Tree

    题目链接:Recover Binary Search Tree | LeetCode OJ Two elements of a binary search tree (BST) are swapped ...

  7. Leetcode 笔记 101 - Symmetric Tree

    题目链接:Symmetric Tree | LeetCode OJ Given a binary tree, check whether it is a mirror of itself (ie, s ...

  8. Leetcode 笔记 36 - Sudoku Solver

    题目链接:Sudoku Solver | LeetCode OJ Write a program to solve a Sudoku puzzle by filling the empty cells ...

  9. Leetcode 笔记 35 - Valid Soduko

    题目链接:Valid Sudoku | LeetCode OJ Determine if a Sudoku is valid, according to: Sudoku Puzzles - The R ...

随机推荐

  1. oracle 11gR2 for win7旗舰版64安装以及连接plsql和NaviCat(win64_11gR2_database) (2012-12-31-bd 写的日志迁移

    先到oracle官网http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.html下载必要数 ...

  2. 2019年Vue学习路线图

    https://juejin.im/entry/5c108864f265da61726555ed 官网: https://cn.vuejs.org/index.html js引入地址 https:// ...

  3. 100个经典C语言程序(益智类)

    100个经典C语言程序(益智类) [1.绘制余弦曲线] 在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线 [问题分析与算法设计] 利用cos(x)的左右对称性,将屏幕的行方向定义为x,列方向 ...

  4. poj 3273 分期问题 最大化最小值

    题意:将N个账款分给城M个财务期,使得每个分期账款和的值最大? 思路: 每次mid为分期账款 如果分期次数小于m说明mid太大,减上限  反正 增下限 开始下限设为 最大值 上限设为和 解决问题的代码 ...

  5. 刷表法动态规划:HOJ11391_Word Clouds Revisited

    题目大意,给若干方块,让把方块拍成若干行,使得最终高度最小.其中,每行有宽度限制,高度为每行中最高的箱子的高度. 于是,很直观的认为,这个题可能也许大概应该是个动态规划的题. 于是,设DP[K]为K及 ...

  6. eclipse快捷键(shift+ctrl+l能出来所有的快捷键)

    [ALT+/]此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类.方法和属性的名字时,多体验一下[ALT+/]快捷键带来的好处吧. 2 [Ctrl+O]显示 ...

  7. Jconsole连接Tomcat JVM

    修改java虚拟机启动参数 在%TOMCAT_HOME%\bin\catalina.sh文件的最顶端 JAVA_OPTS=”-Dcom.sun.management.jmxremote.port=10 ...

  8. 爬虫工程师常用的 Chrome 插件

    做多了爬虫都知道,写一个爬虫大部分时间不是在代码上,而是在分析网页上,所有有一套好用的工具可以极大节省劳动力,这里把平时积累的一些 Chrome 插件分享出来,均来自本人和同事推荐,并不定时更新,欢迎 ...

  9. 电脑卡,eclipse Android stadio 卡,什么都卡解决方法

    昨天还好好的,今天什么都没有动就很卡.Android stadio 半天,改了东西才编译.什么都慢一拍,你能感觉到,打开网页也好,什么也好. 莫名的问题,总是被莫名的解决.真的,下了个360杀毒,没效 ...

  10. django 连接MYSQL时,数据迁移时报:django.db.utils.InternalError: (1366, "Incorrect string value: '\\xE9\\x97\\xAE\\xE9\\xA2\\x98' for column 'name' at row 5")

    django 连接MYSQL时,数据迁移时报:django.db.utils.InternalError: (1366, "Incorrect string value: '\\xE9\\x ...