算法是什么我记不住,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/Algorithm

  算法大神轻喷,完。

时间: 2024-08-02 18:54:56

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

算法是什么我记不住,But i do it my way. (二)

昨天做了一道算法题给大家分享了下我的解法,有给出建设性意见的,有支持的还有看得一知半解的.自己想了想的确有可以优化的地方,贴出优化方案.原题和解答过程在这里http://www.cnblogs.com/xianyudotnet/p/5887304.html. 题目要点: 给出一个0,1矩阵,矩阵中的1就是路径,左右移动消耗体力1,上移消耗3,下移不消耗.给定一个体力值求左上角到右上角的最小消耗路径.为了方便测试建立了一个8*8的矩阵如图.  路径是这样的 原方法的结果: 上一篇中解题思路就是:递

大胆地去做自己坚信的事情,去做不伤害国家和客户的事情 做企业一定要专注。为企业制定战略目标,绝对不能超过三个。超过三个,你就记不住了,员工也记不住

注:马云认为,我们不勤奋,也不聪明,结果我们这些人都变成了富翁,是什么原因?因为我们的运气好,我们其实很傻,一些聪明的人被别的公司挖走了,剩下的人不聪明,没有人来挖,结果居然变得这么有钱,只有眼光看得远,才能走得更远. 红旗出版社最新出版的<马云内部讲话:相信明天>(修订本)已于近日上市,本书新增了 80% 左右首次披露的马云讲话.其中他看待自己和阿里巴巴的员工的观点很符合这个外星人的思维. 马云说,四五年前阿里巴巴招员工很难,现在招员工很容易,街上会走路的人都被我们招来了.我们不勤奋,也不聪

mysql时间函数,总是记不住,总是查。

http://www.cnblogs.com/zeroone/archive/2010/05/05/1727659.html UNIX_TIMESTAMP() UNIX_TIMESTAMP(date) 返回一个Unix时间戳(从'1970-01-01 00:00:00'GMT开始的秒数,date默认值为当前时间)mysql> select UNIX_TIMESTAMP(); -> 882226357 mysql> select UNIX_TIMESTAMP('1997-10-04 22:

[写了也记不住系列]数据复制与AA双活(1)

写了也记不住,不记更完蛋,边看边查边记吧,就酱紫好了. 最开始有些概念需要弄明白: 1. 什么是RPO? Wiki: https://en.wikipedia.org/wiki/Recovery_point_objective A recovery point objective, or “RPO”, is defined by business continuity planning. It is the maximum targeted period in which data might

MVC4.0中项目发布遇到IE11时session存入URL中,导致记不住密码的问题

///MVC4.0中项目发布遇到IE11时session存入URL中,导致记不住密码的问题,在webconfig中配置<system.web><authentication mode="Forms">      <forms loginUrl="~/Account/Login" timeout="2880" cookieless="UseCookies" />    </authent

【转】那些年记不住的块级元素,内联元素

笔试时候,考基础什么的是最讨厌了 块级元素,内联元素总是记不全,总结如下 妈妈再也不用担心我记不住了 块级元素 内联元素 address - 地址block - 块引用center - 居中对齐块(不推荐)dir - 目录列表(HTML5踢出) div - 常用的不能再常用了 dl - 列表 fieldset - 一个包含着form组的框 form - 表了个单 h1 ~ h6 各种尺寸标题 hr - 水平分隔线(不推荐) menu - 菜单列表 noframes - 浏览器不支持frames显

阅读文献存在的问题:坐不住,记不住,想不开

引用:http://blog.sciencenet.cn/blog-2068-500206.html 文献阅读是科研的重要基础,但是并非每一个科研人员都喜欢和擅长看文献——例如我自己.我发现,阅读文献存在的问题可以归纳为三个:坐不住,记不住,想不开. 第一大问题:坐不住 坐不住,指的是不喜欢看文献.为什么我们喜欢看小说,看电视剧,却不喜欢看文献呢?首先是因为看文献难,其次是因为看小说.电视剧更有趣,而看文献却枯燥乏味.“坐不住”的问题怎样才能解决?根据<兴趣从何而来>一文中的分析,可以采用以下

为什么理解的知识却记不住????

问题: 我发现我学数学或者编程,我理解没问题,但要是隔半天甚至是一个小时,我基本就忘了如何写了.或是忘记公式,或是忘记函数的作用.我明明理解了,可为什么记忆力还是跟不上,提取不了呢?我就开始百度,把所有的罪责怪于我的记忆力的问题,这样就有正当的借口证明为什么我没有办法学好数学和编程了,但是我不能欺骗我自己.网上找到的答案都证明了一件事:我学知识就是懒!!!! 知乎找到的摘要答案: 1 你记不住知识点不是你记忆力的问题,而是你没有将知识点全方面多角度的理解,而且也没有进行调用 2 集中意念能达到听

算法导论第1章参考答案与编程题选

系列地址:算法导论(CLRS)参考答案与配套编程题选 1.1 算法 1.1-1 例如大学生学期统计排序以分配奖学金等等. 1.1-2 例如解决问题需要使用的内存等等. 1.1-3 顺序表,优点有支持随机查找,可以在\(O(1)\)内查找元素,缺点是增添/删除元素不方便. 1.1-4 相似:都可以通过带有加权边的图来模拟解决总距离最小化问题. 不同:最短路径和旅行商问题考虑的顶点情况不同,导致复杂度不同. 1.1-5 只有最佳解才行:使用相同外观的钥匙开锁,只有正确的钥匙能打开. 获得近似解也行: