算法是什么我记不住,But i do it my way. 解一道滴滴出行秋招编程题。_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 算法是什么我记不住,But i do it my way. 解一道滴滴出行秋招编程题。

算法是什么我记不住,But i do it my way. 解一道滴滴出行秋招编程题。

 2016/9/21 5:32:38  咸鱼.net  程序员俱乐部  我要评论(0)
  • 摘要:只因在今日头条刷到一篇文章,我就这样伤害我自己,手贱。刷头条看到一篇文章写的滴滴出行2017秋招编程题,后来发现原文在这里http://www.cnblogs.com/SHERO-Vae/p/5882357.html。看了下,挺有意思,于是就想了想,又写了写,最终撸出来了。刚开始一看顿时感觉很熟悉,大学数据结构和算法课肯定讲过相关东西,什么深度搜索,广度搜索,最优路径,最优解。。。但是现在你让我说个一二三,我还就只记住几个名字,说不定名字都记错。我向来不喜欢死记东西,能查到的真的不想背下来
  • 标签:什么 编程 算法

  只因在今日头条刷到一篇文章,我就这样伤害我自己,手贱。

  刷头条看到一篇文章写的滴滴出行2017秋招编程题,后来发现原文在这里http://www.cnblogs.com/SHERO-Vae/p/5882357.html。看了下,挺有意思,于是就想了想,又写了写,最终撸出来了。刚开始一看顿时感觉很熟悉,大学数据结构和算法课肯定讲过相关东西,什么深度搜索,广度搜索,最优路径,最优解。。。但是现在你让我说个一二三,我还就只记住几个名字,说不定名字都记错。我向来不喜欢死记东西,能查到的真的不想背下来,而学校里好多东西就喜欢弄个固定公式什么,让你背下来,然后考试。你让我考试我真没兴趣考高分,让我具体问题写代码,我还能捣鼓出来个一二三。言归正传。

  题目:

  简单来说,就是n,m的0和1矩阵,1就是路径。左上角进去,右上角出来。左右移动消耗1点体力,向下不消耗,向上消耗3点,然后给定体力值,求最优路线。

  

  

  

  

  原文有两道题目,第二道就是简单阶乘略过。

  思路:

  我也是写一点想一点,刚开始想用循环马上发现是不行的。后来写了个递归模拟每一步的移动,渐渐找到方向。再加入相应参数、条件终于实现目标,我不知道这叫什么算法,只是用我能用到的东西解决问题而已。

  把每一步的移动模拟为一个方法,判断下一步可以移动的方向,再次调用移动方法即可。注意每个可移动的方向都调用,那么所有可移动路线也就出来了。

  要是大学里的类似题目解法应该是,建立链表、树之类的,然后还有什么权重什么的,最后算什么权重什么的。。。。我猜大概是这样吧。。。而且我是一个都不知道咋回事了。

  代码:

  

  path是已走过的路径,bn,bm是上一个坐标,cn,cm是当前坐标,p是已消耗体力

  

   结果:

  

   鉴于本码渣算法方面真的是野生水平,在github上建了个算法相关仓库,以后有空会在上面捣鼓捣鼓。这道题代码就在上面,地址:https://github.com/631320085/Algorithm

  算法大神轻喷,完。

发表评论
用户名: 匿名