九章算法,帮助更多中国人找到好工作

硅谷精英在线直播面试技巧,传授算法,数据结构,系统设计等必备知识

观看介绍视频 或者 免费试听

精品CS求职课程

在线直播课程,针对面试实战,第一节课免费试听

九章算法班
18课时

硅谷求职必上,FLAG敲门砖,成为Offer收割机。
3 days,14 hours后开课

系统设计班
16课时

怎样设计Facebook?理解Google的三驾马车!
等待下次开课

Android 项目实战
16课时

硅谷工程师教你从零开始学习 Android 编程!
等待下次开课

Big Data 项目实战
14课时

硅谷工程师教你从零开始学习 Big Data!
1 week,2 days后开课

九章算法强化班
14课时

寒冬期,算法面试越来越难,你需要充电!
2 days,11 hours后截止

Java入门与基础算法班
16课时

不会Java?转专业找CS?算法零基础?
等待下次开课

%

新生来自老生推荐

%

再次购买其他课程

14

国家和地区的学员

95%

每节课学员上座率

超强师资团队

讲师均为北美顶尖IT企业工程师, 毕业季Offer数10+,多年资深业界经验,面试求职者超过200人。

在线直播授课

与真人交流而不是死的视频,课上的问题课上即使解决。无需预装任何软件,打开浏览器即可上课。

配套在线习题

每门课程均配备配套的在线训练习题,并有学员专属题目,让你看得到自己的进步。

结识良师益友

学员专属QQ群,问答论坛,与老师同学交流,结识志同道合的朋友,求职不再孤单。

讲师团队

讲师均来自硅谷和国内顶尖IT企业

免费求职讲座

Offer帝,面试官,为你指引方向

学员故事

《刷题一个月,拿到百度无人车 intern offer》 阅读全文

    先说下背景,国内TOP1应届CS专业研究生在读,研究生在实验室打了一年多杂,主要从事分布式存 ...

Leven 同学

Offers: ADU-US, Microsoft, 阿里

《板凳坐得十年冷,offer 妥妥满手有!》 阅读全文

先介绍下我的背景吧。国内211非985高校的CS毕业,在美国东部一所大学念研究生。由于是一年的项目,没有实习机会,只能一 ...

N.H 同学

Offers: Google, eBay, Pennypop

《博士转CS,坚持就是胜利!》 阅读全文

背景: 国内985生物出身,后来美帝读了博士加统计硕士目标: 暑期实习过程: 2月投的简历,二月三月都上了九章的课程,上 ...

Hebe 同学

Offers: IBM Watson Health intern

《我为什么放弃 Google Offer ?》 阅读全文

本人一北美top 100偏僻农村学校CS PhD。由于学术太渣,所以还是下定决心找公司的工作。我个人感觉的找工作的过程还 ...

小包子 同学

Offers: EMC

《学渣的逆袭:博转硕,拿到Amazon Offer》 阅读全文

楼主的经历比较奇葩,求职的整个过程大概分为三个阶段,简单介绍一下希望鼓励后面找工作的同学,特别是有相似经历的筒子们。第一 ...

红鲤鱼与绿鲤鱼与驴 同学

Offers: Amazon

LintCode / LeetCode 参考答案查询

提供 Java / C++ / Python 参考程序查询

代码风格检测,算法与数据结构分类筛选,阶梯训练闯关刷题,中英文题目切换,请登录 www.lintcode.com

F.A.Q.

[email protected]

课程相关

《九章算法班》使用什么语言?我不会怎么办?
课程提供视频么?错过了一节课怎么办?
课件什么时候发?怎么拿到?
如果我对课程不满意,可以退课么?
如何登陆LintCode Ladder?
上课的形式是什么,可以互动么?
如何知道学员QQ群?
提供内推,简历修改,模拟面试么?
参加你们的课程一定可以拿到Offer么?
上 Android 的课一定要买 Android 手机么?

付款相关

怎么付款?支持那些付款方式和货币?
我是学生,课程价格太贵,怎样可以获得优惠?
我是老学员,是否有优惠?
我推荐了其他人来九章,是否可以获得优惠?怎样获得?
如何获得团购价?需要在同一账户付款么?

学员问答

Hash Function

H同学提问: 要求 (ascii(a) * 33^3 + ascii(b) * 33^2 + ascii(c) *33 + ascii(d)) % HASH_SIZE 和答案实现完全不一样啊,这里面的数学不理解: for(int i = 0; i < key.length;i++) { ans = (ans * 33 + (int)(key[i])) % HASH_SIZE; }
马克助教回答: 如果key.length == 4 那么 for(int i = 0; i < key.length;i++) { ans = (ans * 33 + (int)(key[i])) % HASH_SIZE; } 循环展开的结果就是: ((int)(key[0]) * 33^3 + (int)(key[1]) * 33^2 +(int)(key[2]) * 33 +(int)(key[3])) % HASH_SIZE; (int)(key[0]) 等价于取key[0]的ascii码

TinyURL longURL如何快速判断已经存在映射

R同学提问: longURL 和 seq id 一一对应只能查表 这个不会很慢吗 或者不管三七二十一都新建一条映射?
马克助教回答: 恩,不会的,建映射就好,实践中如果你觉得放在DB上查询比较慢,不能接受,就用Nosql,把数据放在内存里,查询起来就不会慢了。

关于List 的 Quick Sort

G同学提问: 老师好,我看到九章给的在list里面quick sort的code 是这样: ListNode leftDummy = new ListNode(0), leftTail = leftDummy; ListNode rightDummy = new ListNode(0), rightTail = rightDummy; ListNode middleDummy = new ListNode(0), middleTail = middleDummy; while (head != null) { if (head.val < mid.val) { leftTail.next = head; leftTail = head; } else if (head.val > mid.val) { rightTail.next = head; rightTail = head; } else { middleTail.next = head; middleTail = head; } head = head.next; } 我的问题是,这种方法没有swap element 的过程,为什么还可以叫做quick sort 啊? 谢谢
马克助教回答: 因为这里的partition过程是list的操作,所以没有像处理array一下有swap的过程,list是node串起来的,所以partition的时候不需要swap的过程,直接拆分就行。但这个算法还是运用到了partition的思路,所以还是quick sort。

Convert Sorted List to Balanced BST

E同学提问: 题目:Convert Sorted List to Balanced BST 请问这道题中 sortedListToBSTHelper 这个函数的思路该怎样理解?
马克助教回答: 这个函数`sortedListToBSTHelper `作用是把长度为size的list转成BST,这个函数主要的作用是我们不需要暴力的找到list的中点作为root。 TreeNode root = new TreeNode(current.val); current = current.next; current的移动和TreeNode是创建是一一对用的,那么等左子树创建成功之后,current也就来到了当前树root对用的list中的node。

LCA如何确保返回的node是Lowest common?

T同学提问: http://www.jiuzhang.com/solutions/lowest-common-ancestor/ Q1.Divide Conquer的方法中 并没有对maxDepth进行控制,所以是如何确保返回的TreeNode是depth最深的呢? 还是讲,Divideconquear是自底向上,第一次左右两边都有返回node的点就是LCA? Q2 conquer那部分的这段代码,老师可以再讲一下过程吗~?是说左边找到了任一个节点,就返回左边的点,右边同理,直到root的左右两边都有返回的节点,就找到了LCA。但是遇到A B目标节点都在最右或者最左的时候,返回的节点不就循环不断的自底向上了么?它是如何停止的呢? e.g.{1,#,2,#,3,#,4,#,5}, 3, 5 if (left != null) { return left; } if (right != null) { return right; }
马克助教回答: Answer1 我们不需要确保TreeNode的depth是最深。找到节点就可以返回了 Divideconquear是自底向上,第一次左右两边都有返回node的点就是LCA? 是的,如果一个节点他的左右子树中分别包含了A和B,那么他就是LCA。 Answer2 遇到A B目标节点都在最右或者最左的时候,那么此时返回上来的节点就是LCA,因为Answer1,找到了LCA,则一直把LCA返回回来。 e.g.{1,#,2,#,3,#,4,#,5}, 3, 5 这个例子就是访问到3节点,等于节点A,则返回节点,因为没有找到B节点,说明B在A所在的子树当中,A就是LCA,所以一直返回这个节点回去即可。

查看全部 1884 个问题 与 3120 个解答

订阅邮件

开课了将第一时间收到通知

我们尊重您的隐私。

© 2013-2015. All rights reserved.