会写递归超越了多少程序员?
- 634 个点赞 👍
恭喜你!你超越了大部分程序员!
你掌握了递归技术,说明你可以写出dfs!
使用dfs技术,你可以写二叉搜索树!
熟练运用dfs,你还可以完成线段树的编写!
二叉搜索树再随便学学,就是平衡树,你掌握了FHQ,Splay,Treap,红黑树,替罪羊树,B树!
线段树可以拓展到值域线段树!
同样的,平衡树可以拓展到文艺平衡树!
继续就是树套树!Link-Cut-Tree!
往图论那边走走,你学会了tarjan!
tarjan可以完成割边割点,边点双连通分量!
二分图匈牙利算法、网络流最大流也不难,会dfs都可以学!
你还可以去DP那看看,dfs记忆化加剪枝能完成很多动态规划!
这还不止,会递归就可以写归并排序,你掌握了sorting。
你会求逆序对。
你会分治。
你会CDQ分治。
你会整体二分。
你会KDtree
你会exgcd,
你会欧拉反演
你会莫比乌斯反演。
…………
发布于 2023-06-07 23:21・IP 属地广东查看全文>>
Evan_song - 372 个点赞 👍
多年以前的公司,年末会有一项小活动,大家一起实现一小段程序,看谁效率最高。
第一年搞的是输出100内质数,一个来实习的小姑娘独占鳌头。一看代码直接手动输出,确实效率最高。
第二年总监学聪明了,搞了个兔子繁殖(1,1,2,3,5...),输出第几万个。像我这种用递归实现的菜鸡直接没有运行的机会,。
发布于 2023-09-25 10:36・IP 属地云南查看全文>>
扬扬 - 258 个点赞 👍
好多年前的我,大二,刚学c语言,啥也不会,只会递归。参加蓝桥杯,就凭这一招,拿了省赛一等奖,国赛二等奖。我以为自己很强,后来发现是这个比赛水......
后来做嵌入式,发现递归思路简单,但开销极大,经常想尽办法改成非递归......
发布于 2023-03-21 23:59・IP 属地浙江查看全文>>
闪耀大叔 - 203 个点赞 👍
一般来说公司代码里写递归的只有两种人。
一种是大拿,他写的代码基本上就是你司的最高水平,他怎么写代码你最好别质疑,因为他大概率是你司最权威的开发,他写成这样自有他的想法。
另外一种,是公司的BUG制造机,基本上名下挂着一裤衩子BUG改不完,关键自己还觉得自己很厉害,这种人一般离开除只差一个重大事故。
鉴于你问“会写递归超越了多少程序员?”,我觉得你大概率是后一种。
发布于 2024-01-04 13:59・IP 属地辽宁查看全文>>
荒崎绝奈 - 200 个点赞 👍
别的行业不知道,在BIOS行业可以打败90%以上的程序员!为什么这么说呢?这要从十来年前一个故事说起。
十几年前,我接到了一个开发任务,要在UEFI BIOS中提供一套Lib,来初始化PCIe RootPort后面设备的所有PCIe高级Feature,同时还必须是PEI和DXE都可以用的。接到任务,说干就干。考虑到Root Port后面可以接PCIe Switch(这在服务器中非常常见),还要枚举之后所有的设备,这就需要树的深度遍历了。所幸大学知识没有白学,很快就搞了一个原型POC出来,美美的提交到Arch Review的大群里面了。
第二天一上班,就被美国出差来上海的PE Candidate架构师叫到一个会议室中,他严肃地看着我,语重心长的说:“你写的代码有严重问题,有死循环(Dead Loop)。”吓得我心一紧,我做过单元测试的啊,怎么这么粗心,被大牛发现漏洞了!赶紧问在那里。老美大牛似乎有些开心得只给我看:“你写的PcieInitRootPortDownstreamDevices函数怎么自己调用自己了,这不是死循环吗?”
BOOLEAN PcieInitRootPortDownstreamDevices ( ) { 。。。。 。。。。 // // Now go to endpoint // for (DevIndex = 0; DevIndex <= PCI_MAX_DEVICE; DevIndex++) { 。。。。 。。。。 for (FuncIndex = 0; FuncIndex <= EndPointFunctions; FuncIndex++) { 。。。。 。。。。 if (IsSwitch || IsEndPoint) { EndPointPciAddress.Pcie.Offset = ChildCapPtr; PushPcieStack (PcieStack, &EndPointPciAddress.Pcie); if (IsSwitch) { if (PcieInitRootPortDownstreamDevices (&EndPointPciAddress, TempBusNumberMin + BusNumUsed, TempBusNumberMax, &BusNumEndpointUsed,FeatureList,CleanFlag,PcieStack)) { BusNumUsed += BusNumEndpointUsed; } 。。。。 }
我黑人问号脸,一时竟无言以对。
大牛看我震惊的表情,似乎心有不忍:“没事,回去再改改吧”!
前东家的PE怎么说也可以打败95%的同行程序员吧,那PE Candidate一定可以打败90%的程序员,我计算得没有问题吧。手动狗头保命
发布于 2023-10-20 17:34・IP 属地上海查看全文>>
老狼 - 78 个点赞 👍
会写递归程序,恭喜您超越了98%的程序员。
下面请做题,题目是:一只猴想摘树上的桃,他可以一次摘1个,也可以一次摘2个,总共n个桃,他有多少种摘法?
编辑于 2023-03-20 20:37・IP 属地福建真诚赞赏,手留余香还没有人赞赏,快来当第一个赞赏的人吧!查看全文>>
Jagtu - 57 个点赞 👍
已经很可以了,现在很多职业的码畜,也基本达不到目前您现在的这个水准。
比如我这种劣质水平的,给我看一段现在考试代码让我判断是递归还是迭代还是递推还是回溯,说实话,有时我挠了半天脑袋愣是看了半天,还真是分不出来。
发布于 2023-10-22 19:40・IP 属地福建查看全文>>
DBinary - 5 个点赞 👍
会写递归容易,会把实际问题建模成递归问题才是能力。实际工作中总会看到一个复杂的问题被大佬搞成惊艳的递归。
编辑于 2023-03-17 10:30・IP 属地广东真诚赞赏,手留余香还没有人赞赏,快来当第一个赞赏的人吧!查看全文>>
Terrell - 1 个点赞 👍
会写递归刚入门,不会写递归的不能称之为程序员。
但是如果能将任意循环改成递归、且能将任意递归改成循环,应该可以超越30%以上的程序员。
发布于 2023-03-16 09:56・IP 属地广东真诚赞赏,手留余香还没有人赞赏,快来当第一个赞赏的人吧!查看全文>>
觅新笑话中 - 0 个点赞 👍
查看全文>>
查勃多得了如是说