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

Posted 咸鱼.net

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法是什么我记不住,But i do it my way. 解一道滴滴出行秋招编程题。相关的知识,希望对你有一定的参考价值。

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

  刷首页看到一篇文章写的滴滴出行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/A-path-problem

   算法大神轻喷,完。

   本文方法效率太低,于是在此基础上进行了优化,优化结果在这里: http://www.cnblogs.com/xianyudotnet/p/5889775.html

以上是关于算法是什么我记不住,But i do it my way. 解一道滴滴出行秋招编程题。的主要内容,如果未能解决你的问题,请参考以下文章

But How Do It Know 关于人工智能的思考

Do you mind my closing it a little?句中my closing是啥用法

我记不住的那些top命令

My app status is Ready for Sale but I cannot see my app on the App Store. Why? 为什么审核通过后 appstore中搜不到

JavaScript新手学习笔记4——我记不住的几个坑:短路逻辑按值传递声明提前

How do I take a screenshot or screen video on my computer? – Zynga Poker guide