Skip to main content

Posts

Showing posts from April 15, 2018

Leetcode : 201. Bitwise AND of Numbers Range 讲解

heapq — Heap queue algorithm

New in version 2.3. Source code:   Lib/heapq.py This module provides an implementation of the heap queue algorithm, also known as the priority queue algorithm. Heaps are binary trees for which every parent node has a value less than or equal to any of its children. This implementation uses arrays for which  heap[k]   <= heap[2*k+1]  and  heap[k]   <=   heap[2*k+2]  for all  k , counting elements from zero. For the sake of comparison, non-existing elements are considered to be infinite. The interesting property of a heap is that its smallest element is always the root,  heap[0] . The API below differs from textbook heap algorithms in two aspects: (a) We use zero-based indexing. This makes the relationship between the index for a node and the indexes for its children slightly less obvious, but is more suitable since Python uses zero-based indexing. (b) Our pop method returns the smallest item, not the largest (called a “m...

花花酱 LeetCode 198. House Robber - 刷题找工作 EP124

Leetcode : 362. Design Hit Counter 讲解

老中在美国地位就是各种短板效应的集合

发信人: plff (bbb), 信区: JobHunting 标  题: 老中在美国地位就是各种短板效应的集合 发信站: BBS 未名空间站 (Tue Apr 17 19:01:26 2018, 美东) 1) 10个黑不溜秋的老印里总能找出两个看得顺眼的(得益于雅利安基因)。 但10个老中里挑不出一个上得了台面的。小身板不起眼,稍微注重形象的选择走日韩风 。脸上挂着几个大字:我是娘炮。估计公司做janitor的绝经墨大妈都得捏鼻子绕道走 吧。 2) 背后母国天天想着从霉帝偷点东西回去用。 你是老板,你愿意提拔偷偷摸摸搞剽窃的敌对势力坐上高位吗? 宁可错杀一千,不可放过一个。 谁干经理不是一样干。放过一个偷技术的老中,就是灭门之灾。 人要提拔,还真优先考虑港台小黄人。 3) 一代移民能吃苦,但语言不行。 平时不读书不看报不关心体育政治,做多做到一线马内急。 再往上走,需要应付各种人事开会啥的。需要吹牛逼,调情,开玩笑,戴啤酒瓶底眼镜 的一代小黄人哪能hold得住? 4) 一盘散沙写进基因里。 口头上讲团结头头是道没卵用。单个人检讨也没用。你检讨了,别的老中不配合。 唯一办法就是提拔/联合跟你真正趣味相投的老中,一起搞老印。 假如单个老中愿意配合的概率是1/3,找三个齐心老中的概率是1/27,太JB难了。 而这在别族身上根本就不是个事,人家找三个齐心同族的概率是100%。 团战人数越多,老中lose的概率越厉害。 5) 公司一堆外F亚女,几乎见不到外F三姐。 外F前赴后继,跟传销似的发展下线。公司里,超市里,霉帝各个角落无处不在。 外F脸上无一例外挂着几个大字:“亚男不行,我只好找老外”。 有这样的猪队友天天挖国男墙角,打击国男士气,国男JB能硬起来吗?

为什么要刷题

虽然刷题一直饱受诟病,不过不可否认刷题确实能锻炼我们的编程能力,相信每个认真刷题的人都会有体会。现在提供在线编程评测的平台有很多,比较有名的有 hihocoder , LintCode ,以及这里我们关注的 LeetCode 。 LeetCode LeetCode 是一个非常棒的 OJ(Online Judge)平台,收集了许多公司的面试题目。相对其他 OJ 平台而言,有着下面的几个优点: 题目全部来自业内大公司的真实面试 不用处理输入输出,精力全放在解决具体问题上 题目有丰富的讨论,可以参考别人的思路 精确了解自己代码在所有提交代码中运行效率的排名 支持多种主流语言:C/C++,Python, Java 可以在线进行测试,方便调试 下面是我刷 LeetCode 的一些收获,希望能够引诱大家有空时刷刷题目。 问题:抽象思维 波利亚 用三本书:《How To Solve It》、《数学的发现》、《数学与猜想》)来试图阐明人类解决问题的一般性的思维方法,总结起来主要有以下几种: 时刻不忘未知量 。即时刻别忘记你到底想要求什么,问题是什么。( 动态规划 中问题状态的设定) 试错 。对题目这里捅捅那里捣捣,用上所有的已知量,或使用所有你想到的操作手法,尝试着看看能不能得到有用的结论,能不能离答案近一步( 回溯算法 中走不通就回退)。 求解一个类似的题目 。类似的题目也许有类似的结构,类似的性质,类似的解方案。通过考察或回忆一个类似的题目是如何解决的,也许就能够借用一些重要的点子(比较 Ugly Number 的三个题目: 263. Ugly Number , 264. Ugly Number II , 313. Super Ugly Number )。 用特例启发思考 。通过考虑一个合适的特例,可以方便我们快速寻找出一般问题的解。 反过来推导 。对于许多题目而言,其要求的结论本身就隐藏了推论,不管这个推论是充分的还是必要的,都很可能对解题有帮助。 刷 LeetCode 的最大好处就是可以锻炼解决问题的思维能力,相信我,如何去思考本身也是一个需要不断学习和练习的技能。 此外,大量高质量的题目可以加深我们对计算机科学中经典数据结构的 深刻理解 ,从而可以快速用合适的数据结构去解决现实中的问题。我们看到很多ACM大牛,...

刷leetcode是什么样的体验?

这一场算是彻头彻尾的胜利。归功于一年来的刷题。归功于不输阵的心态。归功于日渐成熟的谈吐。更归功于身边人的支持。等待了一年多,我对这场胜利真的期待了太久。 刷题是漫长的路,身边的人能陪伴你,但是从来无法代替你。我刷的最多的是LintCode; LeetCode其实比LintCode要更加严苛一些,在最终的备战时,可以买他们的会员,专门进到各个公司的单元狂刷一下。Flash Back 一下去年刷题的体验: 第一刷 的时候完全不知道为什么要做这些事情,只觉得消耗了很多时间,但总不上道。其实什么都没有太刷出来,基本上就是懒洋洋地做题,看看别人的解答,一轮一轮地打击自己的信心。到头来,也只看了100来道题目吧。 第二刷 时,完全是因为有最牛逼的公司递来了橄榄枝。那时我又兴奋又紧张,更多是紧张,因为自己真的是半瓶子醋啊!(说实在的,谁平时会没事一直练刷题呢,都是为了工作,都是需要动力的)这时开始仔细的看LeetCode还有LintCode里面的题目,分等级开始安排时间。面试的时间定在了一个月,还剩三十天!这三十天真实打了鸡血地不停刷题,战斗,总结,然后再上。到结尾的时候,大约有200道题目吧,其中100道是之前已经做过的。 然后,就失败了。 第三刷 ,是来年,我还在无奈的痛苦中,但也到了春暖花开,各个公司撒网的时候了。这一年Facebook, LinkedIn貌似都不太有动静,Twitter也在暴跌40%的痛苦中。苦苦等待,又来了几个机会,这一次,我没有冲动地定下30天的计划,但是依然充满了鸡血。这一边,仔细讲一讲吧,说说也能算是面经。 1. 把真的想去的公司,稍微排在后面一点,一般的公司,放在前面先去,当然是增加面试经验了。 心态还是要端正的:你想,要是后面的公司全都不要你,那么你去哪,废话,当然是去第一家要你的公司;所以,在这个时候要卯足力气,打好鸡血,做做全面的复习,然后上! 2. 心态要好:成败都是这几个月的家常便饭,失败了再走下一个 。成功了也要看清自己的目标不要懈怠(虽然我拿到offer立刻就懈怠,后面的面试全部当做旅游) 3. 刷题要有策略。正所谓磨刀不误砍柴工,不要一味地钻进题目里面刷刷刷,复习复习复习,重点是要能总结! 有时候这种废话听上去一点力度都没有,但是实际情况就是那么简单。 咱们刷刷题就能找到工作的这个时代,远远不到拼智商的程度。 ...