学习如何在InterviewStreet上解决问题的好方法[关闭]


10

可能重复:
如何适应面试前的挑战性问题?

InterviewStreet是一家新公司,从本质上讲是公司寻找可以编码的程序员的过滤器。我的问题是我的数学还很弱,我想研究一下,即使它是从头开始的,也能够解决在他们的网站上发现的诸如此类的问题:

Find the no of positive integral solutions for the equations (1/x) + (1/y) = 1/N! (read 1 by n factorial) Print a single integer which is the no of positive integral solutions modulo 1000007

现在,请不要发布该问题的答案,它直接来自InterviewStreet,不应在此处发布。这不是我在此线程中寻求的答案。我要问的是一个更基本的问题,SO社区中的某些黑客可能会回答。

如何为这样的问题做准备?我可以使用哪些资源来学习/学习如何解决此类问题?麻省理工学院开放式课件涵盖了这一点吗?可汗学院?有什么特别的书吗?我什至不确定从哪里开始着手解决上述问题,我想学习可以采取哪些步骤。


不要误会我的意思-我非常喜欢这类问题(周末的小难题)-但我真的不认为您会用这些问题找到好的程序-您会发现数学极客的(可能擅长于programmig)-我们都知道这些人完成了代码,但是旁边的人永远无法阅读他们的代码:) ...想知道某人是否有好处?与该人坐下来进行2小时的配对编程,您会学到的东西远比他碰巧喜欢加德纳拼图时要多得多
Carsten

Answers:


9

面试问题通常旨在测试您的问题解决能力,而无需任何专业知识。但是对于您的问题,一定的数学知识肯定会有所帮助。至少,您需要了解“正积分”和“模”的定义。数论入门课程可能有用, 也许是OCW的这门课程

对于样本问题,我也建议使用Euler项目 -这是发展数学和编程知识的好方法。选择一种语言并开始练习。


6

仅仅记住一本书,就无法为这类问题做好准备。要善于解决问题的唯一方法是通过做大量的大量的问题。我确实建议得到一本算法和数据结构书,并仔细阅读。这将大大加快该过程。

我记得几年前,我整个夏天(每天5个多小时)都在练习解决这些类型的问题,只是为了好玩。

您可以在许多地方进行此操作。欧拉计划是一个很好的起点。UVa在线法官也有很多问题。


那是一些承诺。您发现它对您的一般编程能力有所帮助吗?
达伦·扬

3
绝对。我在高中时参加了美国计算机奥林匹克竞赛,从无到有,跃升至美国前20名。关于“现实世界”编程,我想我可以满怀信心地说我的技能得到了极大的提高。现在,我并不是说每个人都应该出去做我所做的事情,但是我认为值得花一些时间磨练您的解决问题的技能。您可以真正学到很多东西,并且绝对适用于软件开发。
tskuzzy 2011年

0

这个特殊问题要求您了解基本数论,特别是诸如分解复合数,质数的某些属性以及对相对质数对的理解之类的想法。

该站点上的其他问题还需要了解O符号,简单的数据结构,基本算法(例如排序)和组合运算法。我已经通过了5个问题中的3个,而我的第4个问题就差不多完成了,在大学一年级CS课后,我还没有使用任何特定的知识。也就是说,这些都是困难的问题。其中一些需要惊人的数学直觉。

为了准备这种事情,您必须善于解决数学问题。研究奥林匹克运动会(如果您正在上高中)或Putnam考试(如果您正在上大学),并进行练习中发现的问题。他们很难,但最终您会变得更好。

另外,不要先做30点问题-象限查询。到目前为止,这是最困难的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.