怕熟人认出来,匿了。
说下我的看法:如果说只是常见的算法,那么答案是能
但是,正如高票所说,存在天花板
个人经历对这点感触很深。
=================先说前半部分=================
本科两年ACM经历(若干年前),区域赛两金两银。这个成绩强校大牛们会嗤之以鼻,不过起码说明普通的算法一定程度上还是掌握了的。非acmer可能没太大概念,区域赛银牌靠前的选手leetcode的hard基本可以闭着眼睛刷(虽然当年还没有leetcode)。当年除了离散数学分数很高(这个和竞赛内容重合太多了),其他高数,概率,复变基本都是60+低空水过。而且这个不是我个别现象,当年几个敬仰的acm大牛,包括很多final选手,topcoder红名选手,数学挂科一大片的比比皆是。当年真心一点没感觉算法和数学有半毛钱关系的。
=================再说后半部分=================
后来不想本科毕业就工作,于是脑残去申了个PhD。当时又不知道自己可以做什么,看到有个方向是Algorithm, 心想卧槽做算法我还不是轻车熟路,相当于再打5年比赛简直爽啊,然后就报了。。赶着我老板可能一时鬼迷心窍居然把我收了。。后面就是各种泪。
入学前老板邮件说看你对algorithm表现出很大兴趣,这里面有一些很不错的资料你看看,于是丢过来3篇SODA一篇STOC。我一看就tm傻眼了,这tm都是啥。为什么算法有这么多公式,一篇paper40页 30页是公式。怎么算法还需要微积分啊,怎么算法还要泛函啊,概率论都忘记了啊,不是DP推一推就行了吗,劳资要退学啊。。。除去research,因为本科数学没学好,convex optimization都听的吃力啊。
于是第一年时间基本上都在熬夜补各种本科的数学课,概率数分泛函各类教材一有空就刷。抱本科生大腿请教问题。一年没睡几天好觉,才总算勉强能靠抱大腿跟上一点了。
所以我个人感觉,你数学不好,但是数学思维还ok,那么前半部分那些基础算法学好是没问题的。但是更advanced一些的,比如工业上你们发现有大牛提出一个应用在你们场景中的算法,很多时候你数学不好甚至都不知道他们在说啥。